docker-compose environment for the entire v.st system https://v.st/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
env/pixelfed.yaml

92 lines
2.9 KiB

version: "3"
services:
pixelfed-app:
image: osresearch/pixelfed:latest
container_name: pixelfed-app
restart: always
volumes:
- ./data/pixelfed/storage:/var/www/storage
environment:
- APP_NAME="${DOMAIN_NAME} Pixelfed"
- INSTANCE_DESCRIPTION="${DOMAIN_NAME} Pixelfed"
- OIDC_CLIENT_ID=pixelfed
- OIDC_CLIENT_SECRET=${PIXELFED_CLIENT_SECRET}
- OIDC_PROVIDER_URL=https://${KEYCLOAK_HOSTNAME}.${DOMAIN_NAME}/realms/${REALM}
- OIDC_ENABLED=true
- OIDC_PROVIDER_NAME=Keycloak
- APP_URL="https://${PIXELFED_HOSTNAME}.${DOMAIN_NAME}"
- APP_DOMAIN="${PIXELFED_HOSTNAME}.${DOMAIN_NAME}"
- ADMIN_DOMAIN="${PIXELFED_HOSTNAME}.${DOMAIN_NAME}"
- SESSION_DOMAIN="${PIXELFED_HOSTNAME}.${DOMAIN_NAME}"
- MAIL_DRIVER=log
- MAIL_HOST=${SMTP_SERVER}
- MAIL_PORT=${SMTP_PORT}
- MAIL_FROM_ADDRESS="pixelfed@${DOMAIN_NAME}"
- MAIL_FROM_NAME="Pixelfed"
- MAIL_USERNAME="${SMTP_USER}"
- MAIL_PASSWORD="${SMTP_PASSWORD}"
env_file:
- ./pixelfed/env.production
- ./secrets/pixelfed.app
depends_on:
- pixelfed-db
- pixelfed-redis
pixelfed-worker:
image: osresearch/pixelfed:latest
container_name: pixelfed-worker
restart: unless-stopped
volumes:
- ./data/pixelfed/storage:/var/www/storage
env_file:
- ./pixelfed/env.production
- ./secrets/pixelfed.app
environment:
- APP_URL="https://${PIXELFED_HOSTNAME}.${DOMAIN_NAME}"
- APP_DOMAIN="${PIXELFED_HOSTNAME}.${DOMAIN_NAME}"
- ADMIN_DOMAIN="${PIXELFED_HOSTNAME}.${DOMAIN_NAME}"
- SESSION_DOMAIN="${PIXELFED_HOSTNAME}.${DOMAIN_NAME}"
- MAIL_DRIVER=log
- MAIL_HOST=${SMTP_SERVER}
- MAIL_PORT=${SMTP_PORT}
- MAIL_FROM_ADDRESS="pixelfed@${DOMAIN_NAME}"
- MAIL_FROM_NAME="Pixelfed"
- MAIL_USERNAME="${SMTP_USER}"
- MAIL_PASSWORD="${SMTP_PASSWORD}"
command: gosu www-data php artisan horizon
depends_on:
- pixelfed-db
- pixelfed-redis
## DB and Cache
pixelfed-db:
image: mysql:8.0
container_name: pixelfed-db
restart: unless-stopped
command: --default-authentication-plugin=mysql_native_password
volumes:
- ./data/pixelfed/db-data:/var/lib/mysql
env_file:
- ./pixelfed/env.production
pixelfed-redis:
image: redis:5-alpine
container_name: pixelfed-redis
restart: unless-stopped
volumes:
- ./data/pixelfed/redis-data:/data
env_file:
- ./pixelfed/env.production
# add the subdomain nginx configuration into the nginx volume
# as well as the storage directory for direct sendfile of static data
nginx:
volumes:
- ./pixelfed/nginx.conf:/etc/nginx/templates/pixelfed.conf.template:ro
- ./data/pixelfed/storage:/pixelfed/storage:ro
# add the subdomain client secrets to the keycloak-setup volume
keycloak:
volumes:
- ./pixelfed/keycloak.sh:/keycloak-setup/pixelfed.sh:ro