Files
Hadrian Burkhardt f5d89cee2f docker compose
2026-05-01 01:47:55 +00:00

68 lines
1.5 KiB
Markdown

FritzBox Self-Hosting
=====================
This setup runs the parser behind Caddy. Caddy receives public HTTP/HTTPS
traffic, obtains TLS certificates, and proxies requests to the app container.
Requirements
------------
* A machine on your home network with Docker and Docker Compose.
* A DNS name that points to your home connection.
* FritzBox port sharing from the internet to the Docker host:
* TCP 80 -> Docker host TCP 80
* TCP 443 -> Docker host TCP 443
* UDP 443 -> Docker host UDP 443
If your internet provider uses CGNAT and you do not have a reachable public IP,
plain FritzBox port forwarding will not work. Use IPv6 with an AAAA record, a
provider option for public IPv4, or a tunnel/VPN.
Configure
---------
Create a local environment file:
.. code-block:: shell
cp .env.local.example .env.local
Edit ``.env.local``:
.. code-block:: dotenv
PUBLIC_HOST=menus.example.org
BASE_URL=https://menus.example.org
``PUBLIC_HOST`` is the domain Caddy serves. ``BASE_URL`` is used by the Flask
app when it generates absolute OpenMensa feed URLs.
Run
---
Start or update the local deployment:
.. code-block:: shell
docker compose --env-file .env.local -f compose.local.yml up -d --build
Check logs:
.. code-block:: shell
docker compose --env-file .env.local -f compose.local.yml logs -f
Check health locally:
.. code-block:: shell
curl http://127.0.0.1/health_check
Stop
----
.. code-block:: shell
docker compose --env-file .env.local -f compose.local.yml down