# DOMAIN=example.com docker stack deploy -c pixelfed.yml pixelfed # docker exec -it pixelfed_app php artisan migrate:fresh --force # UPDATE users SET is_admin = 1 WHERE id = 1; services: app: image: ethibox/pixelfed:${VERSION:-v0.11.3} environment: - APP_NAME=${APP_NAME:-PixelFed} - APP_ENV=${APP_ENV:-production} - APP_KEY=${APP_KEY:-S0meR@nd0mStringS0meR@nd0mString} - APP_DEBUG=${APP_DEBUG:-false} - APP_URL=${SCHEME:-https}://${DOMAIN:-pixelfed.localhost} - ADMIN_DOMAIN=${DOMAIN:-pixelfed.localhost} - APP_DOMAIN=${DOMAIN:-pixelfed.localhost} - SESSION_DOMAIN=${DOMAIN:-pixelfed.localhost} - TRUST_PROXIES="*" - LOG_CHANNEL=stack - DB_CONNECTION=mysql - DB_HOST=mariadb - DB_PORT=3306 - DB_DATABASE=pixelfed - DB_USERNAME=pixelfed - DB_PASSWORD=myp@ssw0rd - BROADCAST_DRIVER=log - CACHE_DRIVER=redis - SESSION_DRIVER=redis - QUEUE_DRIVER=redis - REDIS_HOST=redis - REDIS_PASSWORD=null - REDIS_PORT=6379 - MAIL_DRIVER=${MAIL_DRIVER:-log} - MAIL_HOST=${MAIL_HOST:-smtp.example.com} - MAIL_PORT=${MAIL_PORT:-587} - MAIL_USERNAME=${MAIL_USERNAME:-username} - MAIL_PASSWORD=${MAIL_PASSWORD:-password} - MAIL_ENCRYPTION=${MAIL_ENCRYPTION:-tls} - MAIL_FROM_ADDRESS=${MAIL_FROM_ADDRESS:-admin@example.com} - MAIL_FROM_NAME=${MAIL_FROM_NAME:-"My name"} - OPEN_REGISTRATION=${OPEN_REGISTRATION:-true} - ENFORCE_EMAIL_VERIFICATION=${ENFORCE_EMAIL_VERIFICATION:-false} - MAX_PHOTO_SIZE=15000 - MAX_CAPTION_LENGTH=150 - MAX_ALBUM_LENGTH=4 - HORIZON_DARKMODE=true - HORIZON_EMBED=true - ACTIVITY_PUB=${ACTIVITY_PUB:-false} - REMOTE_FOLLOW=${REMOTE_FOLLOW:-false} - INSTANCE_CONTACT_EMAIL=${INSTANCE_CONTACT_EMAIL} - ENABLE_CONFIG_CACHE=true volumes: - ${VOLUME_PATH}data:/var/www/storage deploy: labels: - traefik.enable=true - traefik.http.routers.pixelfed-${NUMBER:-1}.rule=Host(`${DOMAIN:-pixelfed.localhost}`) - traefik.http.routers.pixelfed-${NUMBER:-1}.entrypoints=${SCHEME:-https} - traefik.http.routers.pixelfed-${NUMBER:-1}.service=pixelfed-${NUMBER:-1} - traefik.http.routers.pixelfed-${NUMBER:-1}.tls.certresolver=letsencrypt - traefik.http.services.pixelfed-${NUMBER:-1}.loadbalancer.server.port=80 networks: - traefik - internal mariadb: image: mariadb:10.5.9 volumes: - ${VOLUME_PATH}mariadb:/var/lib/mysql:cached environment: - MYSQL_ROOT_PASSWORD=myp@ssw0rd - MYSQL_DATABASE=pixelfed - MYSQL_USER=pixelfed - MYSQL_PASSWORD=myp@ssw0rd networks: - internal redis: image: redis:6-alpine volumes: - ${VOLUME_PATH}redis:/data networks: - internal volumes: data: redis: mariadb: networks: internal: driver: overlay attachable: true traefik: external: true name: traefik-net