docker-compose.yml
· 1.4 KiB · YAML
Raw
---
services:
defekt:
image: "docker.io/library/nginx"
volumes:
- "./503.html:/var/www/html/503.html"
- "./error-nginx.conf:/etc/nginx/nginx.conf"
ports:
- "127.0.0.1:8097:80"
app:
image: "quay.io/zknt/pixelfed:dev"
restart: "unless-stopped"
depends_on:
- redis
env_file:
- ./env
ports:
- "127.0.0.1:8098:80"
volumes:
- "./data/storage:/var/www/storage"
- "./env:/var/www/.env"
- "./robots.txt:/var/www/public/robots.txt:ro"
- "./docker-php-ext-opcache.ini:/usr/local/etc/php/conf.d/opcache.ini:ro"
worker:
image: "quay.io/zknt/pixelfed:dev"
restart: "unless-stopped"
depends_on:
- redis
- app
env_file:
- ./env
volumes:
- "./data/storage:/var/www/storage"
- "./env:/var/www/.env"
entrypoint: /worker-entrypoint.sh
healthcheck:
test: php artisan horizon:status | grep running
interval: 60s
timeout: 5s
retries: 1
schedule:
image: "quay.io/zknt/pixelfed:dev"
restart: "unless-stopped"
depends_on:
- redis
- app
env_file:
- ./env
volumes:
- "./data/storage:/var/www/storage"
- "./env:/var/www/.env"
entrypoint: /schedule-entrypoint.sh
redis:
image: "docker.io/library/redis"
restart: "unless-stopped"
volumes:
- "./data/redis:/data"
1 | --- |
2 | services: |
3 | defekt: |
4 | image: "docker.io/library/nginx" |
5 | volumes: |
6 | - "./503.html:/var/www/html/503.html" |
7 | - "./error-nginx.conf:/etc/nginx/nginx.conf" |
8 | ports: |
9 | - "127.0.0.1:8097:80" |
10 | |
11 | app: |
12 | image: "quay.io/zknt/pixelfed:dev" |
13 | restart: "unless-stopped" |
14 | depends_on: |
15 | - redis |
16 | env_file: |
17 | - ./env |
18 | ports: |
19 | - "127.0.0.1:8098:80" |
20 | volumes: |
21 | - "./data/storage:/var/www/storage" |
22 | - "./env:/var/www/.env" |
23 | - "./robots.txt:/var/www/public/robots.txt:ro" |
24 | - "./docker-php-ext-opcache.ini:/usr/local/etc/php/conf.d/opcache.ini:ro" |
25 | |
26 | worker: |
27 | image: "quay.io/zknt/pixelfed:dev" |
28 | restart: "unless-stopped" |
29 | depends_on: |
30 | - redis |
31 | - app |
32 | env_file: |
33 | - ./env |
34 | volumes: |
35 | - "./data/storage:/var/www/storage" |
36 | - "./env:/var/www/.env" |
37 | entrypoint: /worker-entrypoint.sh |
38 | healthcheck: |
39 | test: php artisan horizon:status | grep running |
40 | interval: 60s |
41 | timeout: 5s |
42 | retries: 1 |
43 | |
44 | schedule: |
45 | image: "quay.io/zknt/pixelfed:dev" |
46 | restart: "unless-stopped" |
47 | depends_on: |
48 | - redis |
49 | - app |
50 | env_file: |
51 | - ./env |
52 | volumes: |
53 | - "./data/storage:/var/www/storage" |
54 | - "./env:/var/www/.env" |
55 | entrypoint: /schedule-entrypoint.sh |
56 | |
57 | redis: |
58 | image: "docker.io/library/redis" |
59 | restart: "unless-stopped" |
60 | volumes: |
61 | - "./data/redis:/data" |
env
· 2.7 KiB · Bash
Raw
APP_KEY=fill...
INSTANCE_SOFTWARE_UPDATE_DISABLE_FAILED_WARNING=true
MEDIA_TYPES="image/jpeg,image/png,image/gif,image/webp,video/mp4,video/quicktime,video/3gpp"
PF_BOUNCER_ENABLED=true
APP_NAME="pixelfed.de"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://pixelfed.de
APP_DOMAIN="pixelfed.de"
ADMIN_DOMAIN="pixelfed.de"
SESSION_DOMAIN="pixelfed.de"
OPEN_REGISTRATION=true
ENFORCE_EMAIL_VERIFICATION=true
PF_MAX_USERS=64000
OAUTH_ENABLED=true
APP_TIMEZONE=UTC
APP_LOCALE=en
## Pixelfed Tweaks
LIMIT_ACCOUNT_SIZE=true
MAX_ACCOUNT_SIZE=4000000
MAX_PHOTO_SIZE=15000
MAX_AVATAR_SIZE=2000
MAX_CAPTION_LENGTH=5000
MAX_BIO_LENGTH=1500
MAX_NAME_LENGTH=30
MAX_ALBUM_LENGTH=12
IMAGE_QUALITY=80
PF_OPTIMIZE_IMAGES=true
PF_OPTIMIZE_VIDEOS=true
ADMIN_ENV_EDITOR=false
ACCOUNT_DELETION=true
ACCOUNT_DELETE_AFTER=false
MAX_LINKS_PER_POST=0
PF_MEDIA_MAX_ALTTEXT_LENGTH=5000
PF_MAX_USER_MUTES=500
PF_MAX_USER_BLOCKS=500
## Instance
INSTANCE_DESCRIPTION="A place to post pixels. Federated."
INSTANCE_PUBLIC_HASHTAGS=true
INSTANCE_CONTACT_EMAIL="tercean@pixelfed.de"
INSTANCE_PUBLIC_LOCAL_TIMELINE=true
STORIES_ENABLED=true
RESTRICTED_INSTANCE=false
## Mail
MAIL_DRIVER=smtp
MAIL_HOST=fill...
MAIL_PORT=25
MAIL_FROM_ADDRESS="noreply@pixelfed.de"
MAIL_FROM_NAME="pixelfed.de"
DB_CONNECTION=mysql
DB_HOST=fill...
DB_PORT=3307
DB_DATABASE=pixelfed
DB_USERNAME=pixelfed
DB_PASSWORD=fill...
REDIS_CLIENT=phpredis
REDIS_SCHEME=tcp
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
REDIS_DATABASE=0
## EXPERIMENTS
EXP_LC=false
EXP_REC=false
EXP_LOOPS=false
CUSTOM_EMOJI=true
## ActivityPub Federation
ACTIVITY_PUB=true
AP_REMOTE_FOLLOW=true
AP_SHAREDINBOX=true
AP_INBOX=true
AP_OUTBOX=true
ATOM_FEEDS=true
NODEINFO=true
WEBFINGER=true
## S3
FILESYSTEM_DRIVER=local
FILESYSTEM_CLOUD=s3
PF_ENABLE_CLOUD=false
## Horizon
HORIZON_DARKMODE=false
HORIZON_PREFIX=horizon-1:
# Media
MEDIA_EXIF_DATABASE=true
## Logging
LOG_CHANNEL=stderr
## Image
IMAGE_DRIVER=imagick
## Broadcasting
BROADCAST_DRIVER=log
## Cache
CACHE_DRIVER=redis
## Purify
RESTRICT_HTML_TYPES=true
## Queue
QUEUE_DRIVER=redis
## Session
SESSION_DRIVER=redis
## Trusted Proxy
TRUST_PROXIES="*"
PF_NETWORK_TIMELINE=true
INSTANCE_NETWORK_TIMELINE_CACHED=true
PORTFOLIO_DOMAIN=portfolio.pixelfed.de
PORTFOLIO_PATH=""
ENABLE_CONFIG_CACHE=true
INSTANCE_DISCOVER_PUBLIC=true
PF_HOME_TIMELINE_CACHE=true
PF_HOME_TIMELINE_CACHE_TTL=600
# Login with Masto
PF_LOGIN_WITH_MASTODON_ENABLED=true
PF_LOGIN_WITH_MASTODON_DOMAINS="chaos.social,det.social,fosstodon.org,mastodon.art,mastodon.nl,mastodon.social,mastodontech.de,norden.social,nrw.social,ohai.social,social.tchncs.de"
PF_LOGIN_WITH_MASTODON_ENFORCE_MAX_USES=false
# Insta import
PF_IMPORT_FROM_INSTAGRAM=true
PF_IMPORT_IG_MAX_POSTS=2000
EXP_CHT=true
GROUPS_ENABLED=true
GROUPS_FEDERATION=true
1 | APP_KEY=fill... |
2 | |
3 | INSTANCE_SOFTWARE_UPDATE_DISABLE_FAILED_WARNING=true |
4 | |
5 | MEDIA_TYPES="image/jpeg,image/png,image/gif,image/webp,video/mp4,video/quicktime,video/3gpp" |
6 | |
7 | PF_BOUNCER_ENABLED=true |
8 | |
9 | APP_NAME="pixelfed.de" |
10 | APP_ENV=production |
11 | APP_DEBUG=false |
12 | APP_URL=https://pixelfed.de |
13 | APP_DOMAIN="pixelfed.de" |
14 | ADMIN_DOMAIN="pixelfed.de" |
15 | SESSION_DOMAIN="pixelfed.de" |
16 | |
17 | OPEN_REGISTRATION=true |
18 | ENFORCE_EMAIL_VERIFICATION=true |
19 | PF_MAX_USERS=64000 |
20 | OAUTH_ENABLED=true |
21 | |
22 | APP_TIMEZONE=UTC |
23 | APP_LOCALE=en |
24 | |
25 | ## Pixelfed Tweaks |
26 | LIMIT_ACCOUNT_SIZE=true |
27 | MAX_ACCOUNT_SIZE=4000000 |
28 | MAX_PHOTO_SIZE=15000 |
29 | MAX_AVATAR_SIZE=2000 |
30 | MAX_CAPTION_LENGTH=5000 |
31 | MAX_BIO_LENGTH=1500 |
32 | MAX_NAME_LENGTH=30 |
33 | MAX_ALBUM_LENGTH=12 |
34 | IMAGE_QUALITY=80 |
35 | PF_OPTIMIZE_IMAGES=true |
36 | PF_OPTIMIZE_VIDEOS=true |
37 | ADMIN_ENV_EDITOR=false |
38 | ACCOUNT_DELETION=true |
39 | ACCOUNT_DELETE_AFTER=false |
40 | MAX_LINKS_PER_POST=0 |
41 | PF_MEDIA_MAX_ALTTEXT_LENGTH=5000 |
42 | PF_MAX_USER_MUTES=500 |
43 | PF_MAX_USER_BLOCKS=500 |
44 | |
45 | ## Instance |
46 | INSTANCE_DESCRIPTION="A place to post pixels. Federated." |
47 | INSTANCE_PUBLIC_HASHTAGS=true |
48 | INSTANCE_CONTACT_EMAIL="tercean@pixelfed.de" |
49 | INSTANCE_PUBLIC_LOCAL_TIMELINE=true |
50 | STORIES_ENABLED=true |
51 | RESTRICTED_INSTANCE=false |
52 | |
53 | |
54 | MAIL_DRIVER=smtp |
55 | MAIL_HOST=fill... |
56 | MAIL_PORT=25 |
57 | MAIL_FROM_ADDRESS="noreply@pixelfed.de" |
58 | MAIL_FROM_NAME="pixelfed.de" |
59 | |
60 | DB_CONNECTION=mysql |
61 | DB_HOST=fill... |
62 | DB_PORT=3307 |
63 | DB_DATABASE=pixelfed |
64 | DB_USERNAME=pixelfed |
65 | DB_PASSWORD=fill... |
66 | |
67 | REDIS_CLIENT=phpredis |
68 | REDIS_SCHEME=tcp |
69 | REDIS_HOST=redis |
70 | REDIS_PASSWORD=null |
71 | REDIS_PORT=6379 |
72 | REDIS_DATABASE=0 |
73 | |
74 | ## EXPERIMENTS |
75 | EXP_LC=false |
76 | EXP_REC=false |
77 | EXP_LOOPS=false |
78 | CUSTOM_EMOJI=true |
79 | |
80 | ## ActivityPub Federation |
81 | ACTIVITY_PUB=true |
82 | AP_REMOTE_FOLLOW=true |
83 | AP_SHAREDINBOX=true |
84 | AP_INBOX=true |
85 | AP_OUTBOX=true |
86 | ATOM_FEEDS=true |
87 | NODEINFO=true |
88 | WEBFINGER=true |
89 | |
90 | ## S3 |
91 | FILESYSTEM_DRIVER=local |
92 | FILESYSTEM_CLOUD=s3 |
93 | PF_ENABLE_CLOUD=false |
94 | |
95 | ## Horizon |
96 | HORIZON_DARKMODE=false |
97 | HORIZON_PREFIX=horizon-1: |
98 | |
99 | # Media |
100 | MEDIA_EXIF_DATABASE=true |
101 | |
102 | ## Logging |
103 | LOG_CHANNEL=stderr |
104 | |
105 | ## Image |
106 | IMAGE_DRIVER=imagick |
107 | |
108 | ## Broadcasting |
109 | BROADCAST_DRIVER=log |
110 | |
111 | ## Cache |
112 | CACHE_DRIVER=redis |
113 | |
114 | ## Purify |
115 | RESTRICT_HTML_TYPES=true |
116 | |
117 | ## Queue |
118 | QUEUE_DRIVER=redis |
119 | |
120 | ## Session |
121 | SESSION_DRIVER=redis |
122 | |
123 | ## Trusted Proxy |
124 | TRUST_PROXIES="*" |
125 | |
126 | PF_NETWORK_TIMELINE=true |
127 | INSTANCE_NETWORK_TIMELINE_CACHED=true |
128 | |
129 | PORTFOLIO_DOMAIN=portfolio.pixelfed.de |
130 | PORTFOLIO_PATH="" |
131 | |
132 | ENABLE_CONFIG_CACHE=true |
133 | |
134 | INSTANCE_DISCOVER_PUBLIC=true |
135 | |
136 | PF_HOME_TIMELINE_CACHE=true |
137 | PF_HOME_TIMELINE_CACHE_TTL=600 |
138 | |
139 | # Login with Masto |
140 | PF_LOGIN_WITH_MASTODON_ENABLED=true |
141 | PF_LOGIN_WITH_MASTODON_DOMAINS="chaos.social,det.social,fosstodon.org,mastodon.art,mastodon.nl,mastodon.social,mastodontech.de,norden.social,nrw.social,ohai.social,social.tchncs.de" |
142 | PF_LOGIN_WITH_MASTODON_ENFORCE_MAX_USES=false |
143 | |
144 | # Insta import |
145 | PF_IMPORT_FROM_INSTAGRAM=true |
146 | PF_IMPORT_IG_MAX_POSTS=2000 |
147 | |
148 | EXP_CHT=true |
149 | |
150 | GROUPS_ENABLED=true |
151 | GROUPS_FEDERATION=true |
152 |