86 lines
2.4 KiB
TOML
86 lines
2.4 KiB
TOML
[services.mastodon]
|
|
image = "lscr.io/linuxserver/mastodon:latest"
|
|
container_name = "mastodon"
|
|
restart = "unless-stopped"
|
|
env_file = ".env"
|
|
environment = [
|
|
"PUID=1000",
|
|
"PGID=985",
|
|
"TZ=Europe/Helsinki",
|
|
"LOCAL_DOMAIN=korhonen.cc",
|
|
"WEB_DOMAIN=social.korhonen.cc",
|
|
"REDIS_HOST=redis",
|
|
"REDIS_PORT=6379",
|
|
"DB_HOST=postgres",
|
|
"DB_PORT=5432",
|
|
"DB_NAME=mastodon",
|
|
"DB_USER=mastodon",
|
|
"DB_PASS",
|
|
"VAPID_PRIVATE_KEY",
|
|
"VAPID_PUBLIC_KEY",
|
|
"SECRET_KEY_BASE",
|
|
"OTP_SECRET",
|
|
"SMTP_SERVER=smtp.migadu.com",
|
|
"SMTP_PORT=465",
|
|
"SMTP_TLS=true",
|
|
"SMTP_ENABLE_STARTTLS_AUTO=false",
|
|
"SMTP_AUTH_METHOD=plain",
|
|
"SMTP_LOGIN",
|
|
"SMTP_PASSWORD",
|
|
"SMTP_FROM_ADDRESS=social@korhonen.cc",
|
|
"S3_ENABLED=false",
|
|
"ES_ENABLED=true",
|
|
"ES_HOST=elasticsearch",
|
|
"ES_PORT=9200",
|
|
"ES_USER=elastic",
|
|
"ES_PASS=changeme",
|
|
]
|
|
networks = ["mastodon", "proxy", "postgres"]
|
|
volumes = ["/docker/mastodon:/config"]
|
|
labels = [
|
|
"traefik.enable=true",
|
|
"traefik.docker.network=proxy",
|
|
"traefik.http.routers.mastodon-redirect.entrypoints=http",
|
|
"traefik.http.routers.mastodon-redirect.rule=Host(`social.korhonen.cc`)",
|
|
"traefik.http.routers.mastodon-redirect.middlewares=http2https@file",
|
|
"traefik.http.routers.mastodon.entrypoints=https",
|
|
"traefik.http.routers.mastodon.middlewares=secHeaders@file,compress@file",
|
|
"traefik.http.routers.mastodon.rule=Host(`social.korhonen.cc`)",
|
|
"traefik.http.routers.mastodon.service=mastodon",
|
|
"traefik.http.services.mastodon.loadbalancer.server.port=443",
|
|
"traefik.http.services.mastodon.loadbalancer.server.scheme=https",
|
|
"traefik.http.services.mastodon.loadbalancer.serverstransport=ignorecert@file",
|
|
]
|
|
|
|
[services.elasticsearch]
|
|
image = "docker.elastic.co/elasticsearch/elasticsearch:8.5.3"
|
|
container_name = "mastodon-elasticsearch"
|
|
restart = "unless-stopped"
|
|
volumes = ["/docker/mastodon/elasticsearch:/usr/share/elasticsearch/data"]
|
|
networks = ["mastodon"]
|
|
environment = [
|
|
"cluster.name=mastodon-es-cluster",
|
|
"node.name=mastodon-node",
|
|
"discovery.type=single-node",
|
|
"bootstrap.memory_lock=true",
|
|
"ES_JAVA_OPTS=-Xms200m -Xmx200m",
|
|
]
|
|
[services.elasticsearch.ulimits.memlock]
|
|
soft = -1
|
|
hard = -1
|
|
|
|
[services.redis]
|
|
image = "redis:alpine"
|
|
container_name = "mastodon-redis"
|
|
networks = ["mastodon"]
|
|
restart = "unless-stopped"
|
|
|
|
|
|
[networks.mastodon]
|
|
external = false
|
|
|
|
[networks.proxy]
|
|
external = true
|
|
|
|
[networks.postgres]
|
|
external = true
|