commit c5322ff1ec9c21f8a2d2fe1fd39b79e3455c01bb Author: oliver Date: Fri Mar 28 11:17:01 2025 +0100 Dateien nach „/“ hochladen diff --git a/stack_peertube.yaml b/stack_peertube.yaml new file mode 100644 index 0000000..e048e0a --- /dev/null +++ b/stack_peertube.yaml @@ -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 \ No newline at end of file diff --git a/stack_pixelfed.env b/stack_pixelfed.env new file mode 100644 index 0000000..0263b3b --- /dev/null +++ b/stack_pixelfed.env @@ -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= \ No newline at end of file diff --git a/stack_pixelfed.yaml b/stack_pixelfed.yaml new file mode 100644 index 0000000..927c787 --- /dev/null +++ b/stack_pixelfed.yaml @@ -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: \ No newline at end of file diff --git a/stack_writefreely.yaml b/stack_writefreely.yaml new file mode 100644 index 0000000..194e247 --- /dev/null +++ b/stack_writefreely.yaml @@ -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 \ No newline at end of file