2018-04-08 10:35:41 -04:00
|
|
|
divert(-1)
|
|
|
|
define(`upcase', `translit($1, `a-z', `A-Z')')
|
2018-04-08 11:04:06 -04:00
|
|
|
define(`env', `upcase($1): ${upcase($1):?upcase($1)}')
|
|
|
|
define(`env_fb', `upcase($1): ${upcase($1):-$2}')
|
2018-04-08 10:35:41 -04:00
|
|
|
define(`env_inline', `${upcase($1):?upcase($1)}')
|
2018-04-08 16:49:07 -04:00
|
|
|
define(`env_inline_fb', `${upcase($1):-$2}')
|
2018-04-08 10:35:41 -04:00
|
|
|
divert(1)dnl
|
|
|
|
|
|
|
|
version: "3"
|
|
|
|
|
|
|
|
networks:
|
|
|
|
default:
|
|
|
|
external:
|
2018-04-08 16:49:07 -04:00
|
|
|
name: env_inline_fb(`docker_network', `pleroma_docker_1')
|
2018-04-08 10:35:41 -04:00
|
|
|
|
|
|
|
services:
|
|
|
|
db:
|
|
|
|
image: postgres:10.3-alpine
|
|
|
|
restart: unless-stopped
|
|
|
|
environment:
|
|
|
|
env(`postgres_db')
|
|
|
|
env(`postgres_user')
|
|
|
|
env(`postgres_password')
|
|
|
|
volumes:
|
|
|
|
- env_inline(`docker_datadir')/db:/var/lib/postgresql/data
|
2018-04-08 16:49:07 -04:00
|
|
|
- ./initdb.sql:/docker-entrypoint-initdb.d/pleroma.sql
|
2018-04-08 10:35:41 -04:00
|
|
|
|
|
|
|
server:
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: ./pleroma.dockerfile
|
2018-04-08 16:49:07 -04:00
|
|
|
args:
|
|
|
|
env(`pleroma_version')
|
|
|
|
env_fb(`mix_env', `prod')
|
2018-04-08 10:35:41 -04:00
|
|
|
restart: unless-stopped
|
|
|
|
links:
|
|
|
|
- db
|
|
|
|
environment:
|
2018-04-08 19:01:43 -04:00
|
|
|
env_fb(`mix_env', `prod')
|
|
|
|
|
2018-04-08 11:04:06 -04:00
|
|
|
env_fb(`postgres_ip', `db')
|
2018-04-08 10:35:41 -04:00
|
|
|
env(`postgres_db')
|
|
|
|
env(`postgres_user')
|
|
|
|
env(`postgres_password')
|
|
|
|
|
|
|
|
env(`pleroma_url')
|
|
|
|
env(`pleroma_scheme')
|
|
|
|
env(`pleroma_port')
|
|
|
|
env(`pleroma_secret_key_base')
|
|
|
|
env(`pleroma_name')
|
|
|
|
env(`pleroma_admin_email')
|
2018-04-08 19:21:55 -04:00
|
|
|
env(`pleroma_max_toot_chars')
|
2018-04-08 10:35:41 -04:00
|
|
|
env(`pleroma_registrations_open')
|
|
|
|
env(`pleroma_media_proxy_enabled')
|
|
|
|
env(`pleroma_media_proxy_redirect_on_failure')
|
|
|
|
env(`pleroma_media_proxy_url')
|
2018-04-08 11:04:06 -04:00
|
|
|
env(`pleroma_db_pool_size')
|
2018-04-08 19:01:43 -04:00
|
|
|
env_fb(`pleroma_uploads_path', `/uploads')
|
2018-04-08 18:33:52 -04:00
|
|
|
env(`pleroma_chat_enabled')
|
2018-04-08 10:35:41 -04:00
|
|
|
volumes:
|
2018-04-08 16:49:07 -04:00
|
|
|
- ./custom.d:/custom.d
|
2018-04-08 19:01:43 -04:00
|
|
|
- env_inline(`docker_datadir')/uploads:env_inline_fb(`pleroma_uploads_path', `/uploads')
|
2018-04-08 10:35:41 -04:00
|
|
|
labels:
|
|
|
|
traefik.enable: "true"
|
|
|
|
traefik.fe.port: "4000"
|
|
|
|
traefik.fe.protocol: "http"
|
|
|
|
traefik.fe.entryPoints: "http,https"
|
|
|
|
traefik.fe.frontend.rule: "Host:env_inline(`pleroma_url')"
|
2018-04-08 18:33:52 -04:00
|
|
|
traefik.cache.port: "4000"
|
2018-04-08 10:35:41 -04:00
|
|
|
traefik.cache.protocol: "http"
|
|
|
|
traefik.cache.entryPoints: "http,https"
|
|
|
|
traefik.cache.frontend.rule: "Host:env_inline(`pleroma_media_proxy_url')"
|
|
|
|
|