Dateien nach „/“ hochladen

This commit is contained in:
Oliver Pifferi 2025-03-28 11:17:01 +01:00
commit c5322ff1ec
4 changed files with 353 additions and 0 deletions

65
stack_peertube.yaml Normal file
View file

@ -0,0 +1,65 @@
version: "3.9"
services:
redis:
image: redis:7
command: redis-server --requirepass redispass
container_name: peertube-redis
hostname: peertube-redis
mem_limit: 512m
mem_reservation: 256m
cpu_shares: 768
security_opt:
- no-new-privileges:true
read_only: true
user: 1035:100
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume1/docker/peertube/redis:/data:rw
environment:
TZ: Europe/Berlin
restart: on-failure:5
db:
image: postgres:16
container_name: peertube-db
hostname: peertube-db
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "$POSTGRES_DB", "-U", "$POSTGRES_USER"]
timeout: 45s
interval: 10s
retries: 10
volumes:
- /volume1/docker/peertube/db:/var/lib/postgresql/data:rw
env_file:
- stack.env
restart: on-failure:5
peertube:
image: chocobozzz/peertube:production-bookworm
container_name: peertube
hostname: peertube
mem_limit: 12g
cpu_shares: 2048
security_opt:
- no-new-privileges:true
healthcheck:
test: curl -f http://localhost:9000/ || exit 1
ports:
- 1935:1935 # Comment if you don't want to use the live feature
- 9510:9000
volumes:
- /volume1/docker/peertube/data:/data:rw
- /volume1/docker/peertube/config:/config:rw
env_file:
- stack.env
restart: on-failure:5
depends_on:
redis:
condition: service_healthy
db:
condition: service_healthy

164
stack_pixelfed.env Normal file
View file

@ -0,0 +1,164 @@
## Crypto
APP_KEY=base64:ngO3r31usRX9iMMdzAWwVHpfTp/1acds6+mRoqQAW+U=
## General Settings
ENABLE_CONFIG_CACHE=false
CUSTOM_EMOJI=false
APP_NAME="Pixelfed"
APP_LOCALE=en
APP_TIMEZONE=Europe/Berlin
APP_URL=https://pixelfed.tld
APP_DOMAIN=pixelfed.tld
ADMIN_DOMAIN=pixelfed.tld
SESSION_DOMAIN=pixelfed.tld
TRUST_PROXIES=*
ENABLE_CONFIG_CACHE=true
CUSTOM_EMOJI=false
APP_ENV=production
APP_DEBUG=false
OPEN_REGISTRATION=true
ENFORCE_EMAIL_VERIFICATION=false
PF_MAX_USERS=1000
OAUTH_ENABLED=true
PORTFOLIO_DOMAIN="portfolio.pixelfed.tld"
PORTFOLIO_PATH=""
PF_LOGIN_WITH_MASTODON_ENABLED=true
PF_USER_INVITES=true
## Pixelfed Tweaks
LIMIT_ACCOUNT_SIZE=true
MAX_ACCOUNT_SIZE=1000000
MAX_PHOTO_SIZE=10240
MAX_AVATAR_SIZE=4096
MAX_CAPTION_LENGTH=1000
MAX_BIO_LENGTH=250
MAX_NAME_LENGTH=30
MAX_ALBUM_LENGTH=100
IMAGE_QUALITY=80
PF_OPTIMIZE_IMAGES=true
PF_OPTIMIZE_VIDEOS=true
ADMIN_ENV_EDITOR=true
ACCOUNT_DELETION=true
ACCOUNT_DELETE_AFTER=false
MAX_LINKS_PER_POST=5
## Instance
#INSTANCE_DESCRIPTION=
INSTANCE_PUBLIC_HASHTAGS=true
INSTANCE_CONTACT_EMAIL=info@pixelfed.tld
INSTANCE_PUBLIC_LOCAL_TIMELINE=true
INSTANCE_DISCOVER_PUBLIC=true
#BANNED_USERNAMES=
STORIES_ENABLED=true
RESTRICTED_INSTANCE=false
INSTANCE_REPORTS_EMAIL_ADDRESSES='info@pixelfed.tld'
INSTANCE_REPORTS_EMAIL_ENABLED=true
INSTANCE_REPORTS_EMAIL_AUTOSPAM=true
## Mail
MAIL_DRIVER=smtp
MAIL_HOST=smtp.eu.mailgun.org
MAIL_PORT=587
MAIL_FROM_ADDRESS="mail@pixelfed.tld"
MAIL_FROM_NAME="Pixelfed"
MAIL_USERNAME=login
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
## Databases (MySQL)
#DB_CONNECTION=mysql
#DB_DATABASE=pixelfed_prod
#DB_HOST=db
#DB_PASSWORD=pixelfed_db_pass
#DB_PORT=3306
#DB_USERNAME=pixelfed
# pass the same values to the db itself
#MYSQL_DATABASE=pixelfed_prod
#MYSQL_PASSWORD=pixelfed_db_pass
#MYSQL_RANDOM_ROOT_PASSWORD=true
#MYSQL_USER=pixelfed
## Databases (Postgres)
DB_CONNECTION=pgsql
DB_HOST=pixelfed-db
DB_PORT=5432
DB_DATABASE=pixelfeddb
DB_USERNAME=pixelfed
DB_PASSWORD=pixelfeddbpassword
# pass the same values to the db itself
POSTGRES_DB=pixelfeddb
POSTGRES_USER=pixelfed
POSTGRES_PASSWORD=pixelfeddbpassword
## Cache (Redis)
REDIS_CLIENT=phpredis
REDIS_SCHEME=tcp
REDIS_HOST=pixelfed-redis
REDIS_PASSWORD=
REDIS_PORT=6379
REDIS_DATABASE=0
HORIZON_PREFIX="horizon-"
## EXPERIMENTS
EXP_LC=false
EXP_REC=false
EXP_LOOPS=false
EXP_EMC=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
#AWS_ACCESS_KEY_ID=
#AWS_SECRET_ACCESS_KEY=
#AWS_DEFAULT_REGION=
#AWS_BUCKET=
#AWS_URL=
#AWS_ENDPOINT=
#AWS_USE_PATH_STYLE_ENDPOINT=false
## Horizon
HORIZON_DARKMODE=false
## COSTAR - Confirm Object Sentiment Transform and Reduce
PF_COSTAR_ENABLED=false
# Media
MEDIA_EXIF_DATABASE=false
## 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
## Passport
#PASSPORT_PRIVATE_KEY=
#PASSPORT_PUBLIC_KEY=

86
stack_pixelfed.yaml Normal file
View file

@ -0,0 +1,86 @@
version: "3.9"
services:
pixelfed-redis:
image: redis
container_name: pixelfed-redis
hostname: pixelfed-redis
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
user: 1035:100
environment:
- TZ=Europe/Berlin
volumes:
- /volume1/docker/pixelfed/redis:/data
restart: always
pixelfed-db:
image: postgres
container_name: pixelfed-db
hostname: pixelfed-db
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "pixelfeddb", "-U", "pixelfed"]
timeout: 45s
interval: 10s
retries: 10
user: 1035:100
env_file:
- stack.env
environment:
- TZ=Europe/Berlin
volumes:
- /volume1/docker/pixelfed/db:/var/lib/postgresql/data
restart: always
pixelfed-web:
image: quay.io/zknt/pixelfed:latest
container_name: pixelfed-web
hostname: pixelfed-web
security_opt:
- no-new-privileges:true
healthcheck:
test: stat /etc/passwd || exit 1
env_file:
- stack.env
volumes:
- /volume1/docker/pixelfed/storage:/var/www/storage
- app-bootstrap:/var/www/bootstrap
ports:
- 9750:80
restart: always
depends_on:
pixelfed-db:
condition: service_started
pixelfed-redis:
condition: service_healthy
pixelfed-worker:
image: quay.io/zknt/pixelfed:latest
container_name: pixelfed-worker
hostname: pixelfed-worker
security_opt:
- no-new-privileges:true
healthcheck:
test: php artisan horizon:status | grep running
interval: 60s
timeout: 5s
retries: 1
env_file:
- stack.env
volumes:
- /volume1/docker/pixelfed/storage:/var/www/storage
- app-bootstrap:/var/www/bootstrap
restart: always
entrypoint: /worker-entrypoint.sh
depends_on:
pixelfed-db:
condition: service_started
pixelfed-redis:
condition: service_healthy
pixelfed-web:
condition: service_healthy
volumes:
app-bootstrap:

38
stack_writefreely.yaml Normal file
View file

@ -0,0 +1,38 @@
version: "3.9"
services:
db:
image: mariadb:jammy
container_name: writefreely-db
hostname: writefreely-db
security_opt:
- no-new-privileges:true
healthcheck:
test: out=$$(mysqladmin ping -h localhost -P 3306 -u root --password=rootpw 2>&1); echo $$out | grep 'mysqld is alive' || { echo $$out; exit 1; }
environment:
- TZ=Europe/Berlin
- MYSQL_ROOT_PASSWORD=rootpw
- MYSQL_DATABASE=writefreely
- MYSQL_USER=writefreely
- MYSQL_PASSWORD=writefreelypw
volumes:
- /volume1/docker/writefreely/db:/var/lib/mysql:rw
restart: always
writefreely:
image: algernon/writefreely:latest
container_name: writefreely
hostname: writefreely
security_opt:
- no-new-privileges:true
user: 1035:100
ports:
- 9800:8080
volumes:
- /volume1/docker/writefreely/data:/data
environment:
- WRITEFREELY_SITE_NAME=WriteFreely
- WRITEFREELY_HOST=https://writefreely.my.tld
restart: always
depends_on:
db:
condition: service_started