psql and mastodon

This commit is contained in:
zenfyr 2025-12-30 00:54:29 +07:00
commit 6a6dba369d
Signed by: melontini
SSH key fingerprint: SHA256:TtcIcnTnoAB5mqHofsaOxIgiMzfVBxej1AXT7DQdrTE
12 changed files with 153 additions and 8 deletions

View file

@ -0,0 +1,17 @@
[Unit]
Description=Mastodon DarkHTTPD Static Server
After=network-online.target
Wants=network-online.target
[Container]
Image=p3terx/darkhttpd
Exec=/mastodon/public/system
PublishPort=192.168.1.73:42261:80
Volume=/var/containers/mastodon/public/system:/mastodon/public/system:z
[Service]
Restart=always
RestartSec=10s
[Install]
WantedBy=default.target

View file

@ -0,0 +1,23 @@
[Unit]
Description=Mastodon Dragonfly DB
[Container]
Image=docker.dragonflydb.io/dragonflydb/dragonfly
Environment=DFLY_snapshot_cron=* * * * *
Environment=DFLY_version_check=false
Environment=DFLY_default_lua_flags=allow-undeclared-keys
Environment=DFLY_dbfilename=dump.rdb
Environment=DFLY_df_snapshot_format=false
Environment=DFLY_dir=/data
HealthCmd=redis-cli ping
HealthInterval=5s
HealthRetries=20
Network=mastodon.network
Volume=/var/containers/mastodon/dragonfly:/data:z
[Service]
Restart=always
RestartSec=10s
[Install]
WantedBy=default.target

View file

@ -0,0 +1,18 @@
[Unit]
Description=Mastodon Ingress Service
Requires=postgresql.service mastodon-dfdb.service
After=postgresql.service mastodon-dfdb.service
[Container]
Image=ghcr.io/synth-download/mastodon-ingress:nightly
EnvironmentFile=/var/containers/mastodon/.env.secrets
EnvironmentFile=/var/containers/mastodon/.env
Network=mastodon.network
Network=postgresql.network
[Service]
Restart=always
RestartSec=10s
[Install]
WantedBy=default.target

View file

@ -0,0 +1,21 @@
[Unit]
Description=Mastodon Sidekiq Service
Requires=postgresql.service mastodon-dfdb.service
After=postgresql.service mastodon-dfdb.service
[Container]
Image=ghcr.io/synth-download/mastodon:nightly
EnvironmentFile=/var/containers/mastodon/.env.secrets
EnvironmentFile=/var/containers/mastodon/.env
Exec=bundle exec sidekiq
HealthCmd=ps aux | grep '[s]idekiq 7' || false
Network=mastodon.network
Network=postgresql.network
Volume=/var/containers/mastodon/public/system:/mastodon/public/system:z
[Service]
Restart=always
RestartSec=10s
[Install]
WantedBy=default.target

View file

@ -0,0 +1,21 @@
[Unit]
Description=Mastodon Streaming Service
Requires=postgresql.service mastodon-dfdb.service
After=postgresql.service mastodon-dfdb.service
[Container]
Image=ghcr.io/synth-download/mastodon-streaming:nightly
EnvironmentFile=/var/containers/mastodon/.env.secrets
EnvironmentFile=/var/containers/mastodon/.env
Exec=node ./streaming/index.js
HealthCmd=curl -s --noproxy localhost localhost:4000/api/v1/streaming/health | grep -q 'OK' || exit 1
Network=mastodon.network
Network=postgresql.network
PublishPort=192.168.1.73:58834:4000
[Service]
Restart=always
RestartSec=10s
[Install]
WantedBy=default.target

View file

@ -0,0 +1,24 @@
[Unit]
Description=Mastodon Web Service
Requires=postgresql.service mastodon-dfdb.service
After=postgresql.service mastodon-dfdb.service
[Container]
Image=ghcr.io/synth-download/mastodon:nightly
EnvironmentFile=/var/containers/mastodon/.env.secrets
EnvironmentFile=/var/containers/mastodon/.env
Exec=bundle exec puma -C config/puma.rb
HealthCmd=curl -s --noproxy localhost localhost:3000/health | grep -q 'OK' || exit 1
Network=mastodon.network
Network=postgresql.network
PublishPort=192.168.1.73:46098:3000
Volume=/var/containers/mastodon/public/system:/mastodon/public/system:z
Volume=/var/containers/mastodon/init/disable_ssl.rb:/mastodon/config/initializers/disable_ssl.rb:ro,z
Volume=/var/containers/mastodon/shared:/shared:z
[Service]
Restart=always
RestartSec=10s
[Install]
WantedBy=default.target

View file

@ -0,0 +1 @@
[Network]

View file

@ -0,0 +1,20 @@
[Unit]
Description=PostgreSQL Database
[Container]
Image=groonga/pgroonga:latest-alpine-17
EnvironmentFile=/var/containers/postgresql/.env
Network=postgresql.network
HealthCmd=pg_isready -U postgres -d postgres
HealthInterval=40s
HealthTimeout=3s
HealthRetries=20
Volume=/var/containers/postgresql/db:/var/lib/postgresql/data:z
Volume=/var/containers/postgresql/exp:/mnt/exp:z
[Service]
Restart=always
RestartSec=10s
[Install]
WantedBy=default.target

View file

@ -1,7 +1,7 @@
[Unit]
Description=Sharkey's ActivityPub Federation service
Requires=sharkey-dfdb.service
After=sharkey-dfdb.service network-online.target
After=postgresql.service sharkey-dfdb.service network-online.target
Requires=postgresql.service sharkey-dfdb.service
Wants=network-online.target
[Container]

View file

@ -1,7 +1,7 @@
[Unit]
Description=Sharkey's API and Web service
Requires=sharkey-dfdb.service
After=sharkey-dfdb.service network-online.target
After=postgresql.service sharkey-dfdb.service network-online.target
Requires=postgresql.service sharkey-dfdb.service
Wants=network-online.target
[Container]

View file

@ -1,7 +1,7 @@
[Unit]
Description=Sharkey's Media service
Requires=sharkey-dfdb.service
After=sharkey-dfdb.service network-online.target
After=postgresql.service sharkey-dfdb.service network-online.target
Requires=postgresql.service sharkey-dfdb.service
Wants=network-online.target
[Container]

View file

@ -1,7 +1,7 @@
[Unit]
Description=Sharkey's Worker service
After=sharkey-dfdb.service network-online.target
Requires=sharkey-dfdb.service
After=postgresql.service sharkey-dfdb.service network-online.target
Requires=postgresql.service sharkey-dfdb.service
Wants=network-online.target
[Container]