Skip to content

Commit 245396c

Browse files
committed
persist db
1 parent c3080a2 commit 245396c

7 files changed

Lines changed: 12 additions & 6 deletions

File tree

‎.gitignore‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ cover/
6060
local_settings.py
6161
db.sqlite3
6262
db.sqlite3-journal
63+
db/*.sqlite3
64+
db/*.sqlite3-*
6365

6466
# Flask stuff:
6567
instance/

‎README.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ The secret files must be readable by UID 10001 in the container. Root-owned mode
2424
`0444` is suitable because Docker bind-mounts them read-only. The application
2525
configuration itself is committed as `config/sites.toml`.
2626

27+
Production SQLite files are persisted in the checkout's `db/` directory. The
28+
deployment bind-mounts `/srv/feedback/db` to `/data` in the container, so the
29+
site databases are `/srv/feedback/db/<site-id>.sqlite3`. They are ignored by
30+
Git and survive container rebuilds and replacement.
31+
2732
The process is configured with explicit command-line arguments rather than
2833
environment variables. `python -m feedback --help` lists the config, secret-file,
2934
listener, proxy-trust, concurrency, and keep-alive options. Docker Compose passes

‎compose.deploy.yaml‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ services:
3030
- "127.0.0.1:18080:8080"
3131
volumes:
3232
- ./config/sites.toml:/run/config/sites.toml:ro
33-
- feedback-data:/data
33+
- ./db:/data
3434
secrets:
3535
- github-app-private-key
3636
- github-client-secret
@@ -65,6 +65,3 @@ secrets:
6565
file: ./config/secrets/github-client-secret
6666
oauth-state-hmac-key:
6767
file: ./config/secrets/oauth-state-hmac-key
68-
69-
volumes:
70-
feedback-data:

‎config/sites.example.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[service]
22
public_origin = "https://feedback-api.example.com"
33
oauth_callback = "https://feedback.example.com/v1/oauth/callback.html"
4-
data_directory = "/data/sites"
4+
data_directory = "/data"
55
github_app_id = 1
66
github_client_id = "replace-with-github-client-id"
77
github_concurrency = 2

‎config/sites.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[service]
22
public_origin = "https://feedback-api.cpp.social"
33
oauth_callback = "https://feedback.cpp.social/v1/oauth/callback.html"
4-
data_directory = "/data/sites"
4+
data_directory = "/data"
55
github_app_id = 4961716
66
github_client_id = "Iv23lij7PpR7LjpKa1um"
77
github_concurrency = 2

‎db/.gitkeep‎

Whitespace-only changes.

‎deploy/nixos-module.nix‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ in
4343
WorkingDirectory = cfg.repositoryDirectory;
4444
ExecStartPre = [
4545
"${pkgs.coreutils}/bin/test -s config/sites.toml"
46+
"${pkgs.coreutils}/bin/install -d -o 10001 -g 10001 -m 0750 db"
47+
"${pkgs.coreutils}/bin/chown -R 10001:10001 db"
4648
"${pkgs.coreutils}/bin/test -s config/secrets/github-app-private-key.pem"
4749
"${pkgs.coreutils}/bin/test -s config/secrets/github-client-secret"
4850
"${pkgs.coreutils}/bin/test -s config/secrets/oauth-state-hmac-key"

0 commit comments

Comments
 (0)