SA-007 trivial docker compose
This commit is contained in:
@@ -12,7 +12,8 @@ frontend/ Jinja templates and browser-side assets
|
||||
webextension/ Firefox Manifest V3 extension
|
||||
Logo.svg Source logo artwork used by the web and extension interfaces
|
||||
Dockerfile Backend container image
|
||||
docker-compose.yml App with traefik reverse proxy hooks
|
||||
docker-compose.yml Production app with Traefik reverse proxy hooks
|
||||
docker-compose.local.yml Local development app with direct port access
|
||||
REQUIREMENTS.md Product requirements
|
||||
VIBE/ Conversation and prompt logs
|
||||
```
|
||||
@@ -94,6 +95,18 @@ make xpi
|
||||
|
||||
This creates `XPI/unsigned/LinkLog-0.1.0.xpi` from the `webextension/` package and excludes macOS metadata and minified artifacts. The version is read from `webextension/manifest.json`. The `XPI/signed/` directory is reserved for signed release bundles.
|
||||
|
||||
## Docker Deployment
|
||||
|
||||
The main `docker-compose.yml` is the production deployment. It does not publish port 8000 on the host; the application is reachable through Traefik on the external `linklog_traefik` network. Set `LINKLOG_PUBLIC_URL` to the DNS hostname served by Traefik. The default is the documentation hostname `linklog.example.com`, which must be replaced for a real deployment.
|
||||
|
||||
For local development with direct access, use the separate file:
|
||||
|
||||
```sh
|
||||
docker compose -f docker-compose.local.yml up --build
|
||||
```
|
||||
|
||||
This publishes `${APP_PORT:-8000}` and defaults the application URL to `http://localhost:8000`. Do not use the local file for an Internet-facing deployment.
|
||||
|
||||
## Releases
|
||||
|
||||
Releases run in Gitea Actions when a `v*` tag is pushed. The Docker release version comes from `frontend/version.json`; the Firefox plugin version comes from `webextension/manifest.json`. CI also requires both to match `LINKLOG_VERSION`'s default in `backend/app/core/config.py`.
|
||||
@@ -171,8 +184,9 @@ The main configurable values are:
|
||||
| `LINKLOG_SECRET_KEY` | token signing/security secret | required in Docker |
|
||||
| `LINKLOG_DATA_ENCRYPTION_KEY` | Fernet key for encrypting SMTP, Mastodon, and OTP secrets at rest | required in Docker |
|
||||
| `LINKLOG_DATABASE_PATH` | SQLite file path inside the container | `/app/backend/data/linklog.db` |
|
||||
| `LINKLOG_TOKEN_EXPIRY_DAYS` | access-token lifetime | `30` |
|
||||
| `LINKLOG_PUBLIC_URL` | Public hostname used by Traefik and expanded to a callback URL by the backend | `localhost` |
|
||||
| `LINKLOG_TOKEN_EXPIRY_MINUTES` | access-token lifetime | `15` |
|
||||
| `LINKLOG_REFRESH_TOKEN_EXPIRY_DAYS` | refresh-token lifetime | `30` |
|
||||
| `LINKLOG_PUBLIC_URL` | Public hostname used by Traefik and expanded to a callback URL by the backend | `linklog.example.com` |
|
||||
| `LINKLOG_SMTP_HOST` | SMTP server hostname; empty disables delivery in local development | empty |
|
||||
| `LINKLOG_SMTP_PORT` | SMTP server port | `587` |
|
||||
| `LINKLOG_SMTP_USERNAME` | SMTP login username | empty |
|
||||
|
||||
Reference in New Issue
Block a user