فهرست منبع

refactor layout

Christian Winther 1 سال پیش
والد
کامیت
e228a1622d

+ 894 - 122
.env.docker

@@ -1,149 +1,921 @@
-## Crypto
+# -*- mode: bash -*-
+# vi: ft=bash
+
+###############################################################
+# Docker-wide configuration
+###############################################################
+
+# Path (relative) to the docker-compose file where containers will store their data
+DOCKER_DATA_ROOT="./data"
+
+# Path (relative) to the docker-compose file where containers will store their config
+DOCKER_CONFIG_ROOT="./config"
+
+# Pixelfed version (image tag) to pull from the registry
+DOCKER_TAG="branch-jippi-fork-apache-8.1"
+
+# Set timezone used by *all* containers - these should be in sync
+#
+# See: https://www.php.net/manual/en/timezones.php
+TZ="UTC"
+
+# Automatically run [artisan migrate --force] if new migrations are detected
+DOCKER_APPLY_NEW_MIGRATIONS_AUTOMATICALLY="0"
+
+###############################################################
+# Pixelfed application configuration
+###############################################################
+
+# A random 32-character string to be used as an encryption key.
+#
+# No default value; use [php artisan key:generate] to generate.
+#
+# This key is used by the Illuminate encrypter service and should be set to a random,
+# 32 character string, otherwise these encrypted strings will not be safe.
+#
+# Please do this before deploying an application!
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#app_key
 APP_KEY=
 APP_KEY=
 
 
-## General Settings
+# See: https://docs.pixelfed.org/technical-documentation/config/#app_name-1
 APP_NAME="Pixelfed Prod"
 APP_NAME="Pixelfed Prod"
-APP_ENV=production
-APP_DEBUG=false
-APP_URL=https://real.domain
-APP_DOMAIN="real.domain"
-ADMIN_DOMAIN="real.domain"
-SESSION_DOMAIN="real.domain"
-
-OPEN_REGISTRATION=true
-ENFORCE_EMAIL_VERIFICATION=false
-PF_MAX_USERS=1000
-OAUTH_ENABLED=true
-
-APP_TIMEZONE=UTC
-APP_LOCALE=en
-
-## Pixelfed Tweaks
-LIMIT_ACCOUNT_SIZE=true
-MAX_ACCOUNT_SIZE=1000000
-MAX_PHOTO_SIZE=15000
-MAX_AVATAR_SIZE=2000
-MAX_CAPTION_LENGTH=500
-MAX_BIO_LENGTH=125
-MAX_NAME_LENGTH=30
-MAX_ALBUM_LENGTH=4
-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
-
-## Instance
+
+# Application domains used for routing.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#app_domain
+APP_DOMAIN="__CHANGE_ME__"
+
+# This URL is used by the console to properly generate URLs when using the Artisan command line tool.
+# You should set this to the root of your application so that it is used when running Artisan tasks.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#app_url
+APP_URL=https://${APP_DOMAIN}
+
+# Application domains used for routing.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#admin_domain
+ADMIN_DOMAIN="${APP_DOMAIN}"
+
+# This value determines the “environment” your application is currently running in.
+# This may determine how you prefer to configure various services your application utilizes.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#app_env
+#APP_ENV="production"
+
+# When your application is in debug mode, detailed error messages with stack traces will
+# be shown on every error that occurs within your application.
+#
+# If disabled, a simple generic error page is shown.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#app_debug
+#APP_DEBUG="false"
+
+# Enable/disable new local account registrations.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#open_registration
+#OPEN_REGISTRATION=true
+
+# Require email verification before a new user can do anything.
+#
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#enforce_email_verification
+#ENFORCE_EMAIL_VERIFICATION="true"
+
+# Allow a maximum number of user accounts.
+#
+# Defaults to "1000".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#pf_max_users
+PF_MAX_USERS="false"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#oauth_enabled
+OAUTH_ENABLED="true"
+
+# Defaults to "UTC".
+#
+# Do not edit your timezone or things will break!
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#app_timezone
+# See: https://www.php.net/manual/en/timezones.php
+APP_TIMEZONE="${TZ}"
+
+# The application locale determines the default locale that will be used by the translation service provider.
+# You are free to set this value to any of the locales which will be supported by the application.
+#
+# Defaults to "en".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#app_locale
+#APP_LOCALE="en"
+
+# The fallback locale determines the locale to use when the current one is not available.
+#
+# You may change the value to correspond to any of the language folders that are provided through your application.
+#
+# Defaults to "en".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#app_fallback_locale
+#APP_FALLBACK_LOCALE="en"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#limit_account_size
+#LIMIT_ACCOUNT_SIZE="true"
+
+# Update the max account size, the per user limit of files in kB.
+#
+# Defaults to "1000000" (1GB).
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#max_account_size-kb
+#MAX_ACCOUNT_SIZE="1000000"
+
+# Update the max photo size, in kB.
+#
+# Defaults to "15000" (15MB).
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#max_photo_size-kb
+#MAX_PHOTO_SIZE="15000"
+
+# Update the max avatar size, in kB.
+#
+# Defaults to "2000" (2MB).
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#max_avatar_size-kb
+#MAX_AVATAR_SIZE="2000"
+
+# Change the caption length limit for new local posts.
+#
+# Defaults to "500".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#max_caption_length
+#MAX_CAPTION_LENGTH="500"
+
+# Change the bio length limit for user profiles.
+#
+# Defaults to "125".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#max_bio_length
+#MAX_BIO_LENGTH="125"
+
+# Change the length limit for user names.
+#
+# Defaults to "30".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#max_name_length
+#MAX_NAME_LENGTH="30"
+
+# The max number of photos allowed per post.
+#
+# Defaults to "4".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#max_album_length
+#MAX_ALBUM_LENGTH="4"
+
+# Resize and optimize image uploads.
+#
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#pf_optimize_images
+#PF_OPTIMIZE_IMAGES="true"
+
+# Set the image optimization quality, must be a value between 1-100.
+#
+# Defaults to "80".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#image_quality
+#IMAGE_QUALITY="80"
+
+# Resize and optimize video uploads.
+#
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#pf_optimize_videos
+#PF_OPTIMIZE_VIDEOS="true"
+
+# Enable account deletion.
+#
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#account_deletion
+#ACCOUNT_DELETION="true"
+
+# Set account deletion queue after X days, set to false to delete accounts immediately.
+#
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#account_delete_after
+#ACCOUNT_DELETE_AFTER="false"
+
+# Defaults to "Pixelfed - Photo sharing for everyone".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#instance_description
 #INSTANCE_DESCRIPTION=
 #INSTANCE_DESCRIPTION=
-INSTANCE_PUBLIC_HASHTAGS=false
-#INSTANCE_CONTACT_EMAIL=
-INSTANCE_PUBLIC_LOCAL_TIMELINE=false
+
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#instance_public_hashtags
+#INSTANCE_PUBLIC_HASHTAGS="false"
+
+# Defaults to "".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#instance_contact_email
+INSTANCE_CONTACT_EMAIL="admin@${APP_DOMAIN}"
+
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#instance_public_local_timeline
+#INSTANCE_PUBLIC_LOCAL_TIMELINE="false"
+
+# Defaults to "".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#banned_usernames
 #BANNED_USERNAMES=
 #BANNED_USERNAMES=
-STORIES_ENABLED=false
-RESTRICTED_INSTANCE=false
-
-## Mail
-MAIL_DRIVER=log
-MAIL_HOST=smtp.mailtrap.io
-MAIL_PORT=2525
-MAIL_FROM_ADDRESS="pixelfed@example.com"
-MAIL_FROM_NAME="Pixelfed"
-MAIL_USERNAME=null
-MAIL_PASSWORD=null
-MAIL_ENCRYPTION=null
-
-## 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=postgres
-#DB_PORT=5432
-#DB_DATABASE=pixelfed
-#DB_USERNAME=postgres
-#DB_PASSWORD=postgres
-
-## Cache (Redis)
-REDIS_CLIENT=phpredis
-REDIS_SCHEME=tcp
-REDIS_HOST=redis
-REDIS_PASSWORD=redis_password
-REDIS_PORT=6379
-REDIS_DATABASE=0
-
-HORIZON_PREFIX="horizon-"
-
-## EXPERIMENTS 
-EXP_LC=false
-EXP_REC=false
-EXP_LOOPS=false
-
-## ActivityPub Federation
-ACTIVITY_PUB=false
-AP_REMOTE_FOLLOW=false
-AP_SHAREDINBOX=false
-AP_INBOX=false
-AP_OUTBOX=false
-ATOM_FEEDS=true
-NODEINFO=true
-WEBFINGER=true
-
-## S3
-FILESYSTEM_CLOUD=s3
-PF_ENABLE_CLOUD=false
+
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#stories_enabled
+#STORIES_ENABLED="false"
+
+# Defaults to "false".
+#
+# Level is hardcoded to 1.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#restricted_instance
+#RESTRICTED_INSTANCE="false"
+
+###############################################################
+# Database configuration
+###############################################################
+
+# Here you may specify which of the database connections below you wish to use as your default connection for all database work.
+#
+# Of course you may use many connections at once using the database library.
+#
+# Possible values:
+#
+# - "sqlite"
+# - "mysql" (default)
+# - "pgsql"
+# - "sqlsrv"
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#db_connection
+DB_CONNECTION="mysql"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#db_host
+DB_HOST="db"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#db_username
+DB_USERNAME="pixelfed"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#db_password
+DB_PASSWORD="helloworld"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#db_database
+DB_DATABASE="pixelfed_prod"
+
+# Use "3306" for MySQL/MariaDB and "5432" for PostgreeSQL
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#db_port
+DB_PORT="3306"
+
+ENTRYPOINT_DEBUG=0
+
+###############################################################
+# Mail configuration
+###############################################################
+
+# Laravel supports both SMTP and PHP’s “mail” function as drivers for the sending of e-mail.
+# You may specify which one you’re using throughout your application here.
+#
+# Possible values:
+#
+# "smtp" (default)
+# "sendmail"
+# "mailgun"
+# "mandrill"
+# "ses"
+# "sparkpost"
+# "log"
+# "array"
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#mail_driver
+#MAIL_DRIVER="smtp"
+
+# The host address of the SMTP server used by your applications.
+#
+# A default option is provided that is compatible with the Mailgun mail service which will provide reliable deliveries.
+#
+# Defaults to "smtp.mailgun.org".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#mail_host
+#MAIL_HOST="smtp.mailgun.org"
+
+# This is the SMTP port used by your application to deliver e-mails to users of the application.
+#
+# Like the host we have set this value to stay compatible with the Mailgun e-mail application by default.
+#
+# Defaults to 587.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#mail_port
+#MAIL_PORT="587"
+
+# You may wish for all e-mails sent by your application to be sent from the same address.
+#
+# Here, you may specify a name and address that is used globally for all e-mails that are sent by your application.
+#
+# Defaults to "hello@example.com".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#mail_from_address
+MAIL_FROM_ADDRESS="hello@${APP_DOMAIN}"
+
+# Defaults to "Example".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#mail_from_name
+MAIL_FROM_NAME="Pixelfed @ ${APP_DOMAIN}"
+
+# If your SMTP server requires a username for authentication, you should set it here.
+#
+# This will get used to authenticate with your server on connection.
+# You may also set the “password” value below this one.
+#
+# Defaults to "".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#mail_username
+#MAIL_USERNAME=
+
+# Defaults to "".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#mail_password
+#MAIL_PASSWORD=
+
+# Here you may specify the encryption protocol that should be used when the application send e-mail messages.
+#
+# A sensible default using the transport layer security protocol should provide great security.
+#
+# Defaults to "tls".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#mail_encryption
+#MAIL_ENCRYPTION="tls"
+
+###############################################################
+# Redis configuration
+###############################################################
+
+# Defaults to "phpredis".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#db_username
+#REDIS_CLIENT="phpredis"
+
+# Defaults to "tcp".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#redis_scheme
+#REDIS_SCHEME="tcp"
+
+# Defaults to "localhost".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#redis_host
+REDIS_HOST="redis"
+
+# Defaults to null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#redis_password
+#REDIS_PASSWORD=
+
+# Defaults to 6379.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#redis_port
+REDIS_PORT="6379"
+
+# Defaults to 0.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#redis_database
+#REDIS_DATABASE="0"
+
+###############################################################
+# Cache settings
+###############################################################
+
+# This option controls the default cache connection that gets used while using this caching library.
+#
+# This connection is used when another is not explicitly specified when executing a given caching function.
+#
+# Possible values:
+# - "apc"
+# - "array"
+# - "database"
+# - "file" (default)
+# - "memcached"
+# - "redis"
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cache_driver
+CACHE_DRIVER="redis"
+
+# Defaults to ${APP_NAME}_cache, or laravel_cache if no APP_NAME is set.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cache_prefix
+# CACHE_PREFIX="{APP_NAME}_cache"
+
+###############################################################
+# Horizon settings
+###############################################################
+
+# This prefix will be used when storing all Horizon data in Redis.
+#
+# You may modify the prefix when you are running multiple installations
+# of Horizon on the same server so that they don’t have problems.
+#
+# Defaults to "horizon-".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_prefix
+#HORIZON_PREFIX="horizon-"
+
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_darkmode
+#HORIZON_DARKMODE="false"
+
+# This value (in MB) describes the maximum amount of memory (in MB) the Horizon worker
+# may consume before it is terminated and restarted.
+#
+# You should set this value according to the resources available to your server.
+#
+# Defaults to "64".
+#HORIZON_MEMORY_LIMIT="64"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_balance_strategy
+#HORIZON_BALANCE_STRATEGY="auto"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_min_processes
+#HORIZON_MIN_PROCESSES="1"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_max_processes
+#HORIZON_MAX_PROCESSES="20"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_supervisor_memory
+#HORIZON_SUPERVISOR_MEMORY="64"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_supervisor_tries
+#HORIZON_SUPERVISOR_TRIES="3"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_supervisor_nice
+#HORIZON_SUPERVISOR_NICE="0"
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_supervisor_timeout
+#HORIZON_SUPERVISOR_TIMEOUT="300"
+
+###############################################################
+# Experiments
+###############################################################
+
+# Text only posts (alpha).
+#
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#exp_top
+#EXP_TOP="false"
+
+# Poll statuses (alpha).
+#
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#exp_polls
+#EXP_POLLS="false"
+
+# Cached public timeline for larger instances (beta).
+#
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#exp_cpt
+#EXP_CPT="false"
+
+# Enforce Mastoapi Compatibility (alpha).
+#
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#exp_emc
+EXP_EMC="true"
+
+###############################################################
+# ActivityPub confguration
+###############################################################
+
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#activity_pub
+ACTIVITY_PUB="true"
+
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#ap_remote_follow
+#AP_REMOTE_FOLLOW="true"
+
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#ap_sharedinbox
+#AP_SHAREDINBOX="true"
+
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#ap_inbox
+#AP_INBOX="true"
+
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#ap_outbox
+#AP_OUTBOX="true"
+
+###############################################################
+# Federation confguration
+###############################################################
+
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#atom_feeds
+#ATOM_FEEDS="true"
+
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#nodeinfo
+#NODEINFO="true"
+
+# Defaults to "true".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#webfinger
+#WEBFINGER="true"
+
+###############################################################
+# Storage (cloud)
+###############################################################
+
+# Store media on object storage like S3, Digital Ocean Spaces, Rackspace
+#
+# Defaults to "false".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#pf_enable_cloud
+#PF_ENABLE_CLOUD="false"
+
+# Many applications store files both locally and in the cloud.
+#
+# For this reason, you may specify a default “cloud” driver here.
+# This driver will be bound as the Cloud disk implementation in the container.
+#
+# Defaults to "s3".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#filesystem_cloud
+#FILESYSTEM_CLOUD="s3"
+
+# Defaults to true.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#media_delete_local_after_cloud
+#MEDIA_DELETE_LOCAL_AFTER_CLOUD="true"
+
+###############################################################
+# Storage (cloud) - S3
+###############################################################
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#aws_access_key_id
 #AWS_ACCESS_KEY_ID=
 #AWS_ACCESS_KEY_ID=
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#aws_secret_access_key
 #AWS_SECRET_ACCESS_KEY=
 #AWS_SECRET_ACCESS_KEY=
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#aws_default_region
 #AWS_DEFAULT_REGION=
 #AWS_DEFAULT_REGION=
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#aws_bucket
 #AWS_BUCKET=
 #AWS_BUCKET=
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#aws_url
 #AWS_URL=
 #AWS_URL=
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#aws_endpoint
 #AWS_ENDPOINT=
 #AWS_ENDPOINT=
-#AWS_USE_PATH_STYLE_ENDPOINT=false
 
 
-## Horizon
-HORIZON_DARKMODE=false
+# See: https://docs.pixelfed.org/technical-documentation/config/#aws_use_path_style_endpoint
+#AWS_USE_PATH_STYLE_ENDPOINT="false"
+
+###############################################################
+# COSTAR - Confirm Object Sentiment Transform and Reduce
+###############################################################
+
+# Comma-separated list of domains to block.
+#
+# Defaults to null
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cs_blocked_domains
+#CS_BLOCKED_DOMAINS=
+
+# Comma-separated list of domains to add warnings.
+#
+# Defaults to null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cs_cw_domains
+#CS_CW_DOMAINS=
+
+# Comma-separated list of domains to remove from public timelines.
+#
+# Defaults to null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cs_unlisted_domains
+#CS_UNLISTED_DOMAINS=
+
+# Comma-separated list of keywords to block.
+#
+# Defaults to null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cs_blocked_keywords
+#CS_BLOCKED_KEYWORDS=
 
 
-## COSTAR - Confirm Object Sentiment Transform and Reduce
-PF_COSTAR_ENABLED=false
+# Comma-separated list of keywords to add warnings.
+#
+# Defaults to null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cs_cw_keywords
+#CS_CW_KEYWORDS=
 
 
+# Comma-separated list of keywords to remove from public timelines.
+#
+# Defaults to null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cs_unlisted_keywords
+#CS_UNLISTED_KEYWORDS=
+
+# Defaults to null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cs_blocked_actor
+#CS_BLOCKED_ACTOR=
+
+# Defaults to null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cs_cw_actor
+#CS_CW_ACTOR=
+
+# Defaults to null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#cs_unlisted_actor
+#CS_UNLISTED_ACTOR=
+
+###############################################################
 # Media
 # Media
-MEDIA_EXIF_DATABASE=false
+###############################################################
+
+# Defaults to false.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#media_exif_database
+MEDIA_EXIF_DATABASE="true"
+
+# Pixelfed supports GD or ImageMagick to process images.
+#
+# Defaults to "gd".
+#
+# Possible values:
+#  - "gd" (default)
+#  - "imagick"
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#image_driver
+#IMAGE_DRIVER="gd"
+
+###############################################################
+# Logging
+###############################################################
+
+# Possible values:
+#
+# - "stack" (default)
+# - "single"
+# - "daily"
+# - "slack"
+# - "stderr"
+# - "syslog"
+# - "errorlog"
+# - "null"
+# - "emergency"
+# - "media"
+LOG_CHANNEL="stderr"
+
+# Used by single, stderr and syslog.
+#
+# Defaults to "debug" for all of those.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#log_level
+#LOG_LEVEL="debug"
+
+# Used by stderr.
+#
+# Defaults to "".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#log_stderr_formatter
+#LOG_STDERR_FORMATTER=
+
+# Used by slack.
+#
+# Defaults to "".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#log_slack_webhook_url
+#LOG_SLACK_WEBHOOK_URL=
+
+###############################################################
+# Broadcasting settings
+###############################################################
+
+# This option controls the default broadcaster that will be used by the framework when an event needs to be broadcast.
+#
+# Possible values:
+# - "pusher"
+# - "redis"
+# - "log"
+# - "null" (default)
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#broadcast_driver
+BROADCAST_DRIVER=redis
+
+###############################################################
+# Other settings
+###############################################################
+
+# Defaults to true.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#restrict_html_types
+#RESTRICT_HTML_TYPES="true"
+
+###############################################################
+# Queue configuration
+###############################################################
+
+# Possible values:
+#   - "sync" (default)
+#   - "database"
+#   - "beanstalkd"
+#   - "sqs"
+#   - "redis"
+#   - "null"
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#queue_driver
+QUEUE_DRIVER="redis"
+
+###############################################################
+# Queue (SQS) configuration
+###############################################################
 
 
-## Logging
-LOG_CHANNEL=stderr
+# Defaults to "your-public-key".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#sqs_key
+#SQS_KEY="your-public-key"
 
 
-## Image
-IMAGE_DRIVER=imagick
+# Defaults to "your-secret-key".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#sqs_secret
+#SQS_SECRET="your-secret-key"
 
 
-## Broadcasting: log driver for local development
-BROADCAST_DRIVER=log
+# Defaults to "https://sqs.us-east-1.amazonaws.com/your-account-id".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#sqs_prefix
+#SQS_PREFIX=
 
 
-## Cache
-CACHE_DRIVER=redis
+# Defaults to "your-queue-name".
+#
+# https://docs.pixelfed.org/technical-documentation/config/#sqs_queue
+#SQS_QUEUE="your-queue-name"
 
 
-## Purify
-RESTRICT_HTML_TYPES=true
+# Defaults to "us-east-1".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#sqs_region
+#SQS_REGION="us-east-1"
 
 
-## Queue
-QUEUE_DRIVER=redis
+###############################################################
+# Session configuration
+###############################################################
 
 
-## Session
-SESSION_DRIVER=redis
+# This option controls the default session “driver” that will be used on requests.
+#
+# By default, we will use the lightweight native driver but you may specify any of the other wonderful drivers provided here.
+#
+# Possible values:
+#   - "file"
+#   - "cookie"
+#   - "database" (default)
+#   - "apc"
+#   - "memcached"
+#   - "redis"
+#   - "array"
+SESSION_DRIVER="redis"
 
 
-## Trusted Proxy
+# Here you may specify the number of minutes that you wish the session to be allowed to remain idle before it expires.
+#
+# If you want them to immediately expire on the browser closing, set that option.
+#
+# Defaults to 86400.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#session_lifetime
+#SESSION_LIFETIME="86400"
+
+# Here you may change the domain of the cookie used to identify a session in your application.
+#
+# This will determine which domains the cookie is available to in your application.
+#
+# A sensible default has been set.
+#
+# Defaults to the value of APP_DOMAIN, or null.
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#session_domain
+#SESSION_DOMAIN="${APP_DOMAIN}"
+
+###############################################################
+# Proxy configuration
+###############################################################
+
+# Set trusted proxy IP addresses.
+#
+# Both IPv4 and IPv6 addresses are supported, along with CIDR notation.
+#
+# The “*” character is syntactic sugar within TrustedProxy to trust any
+# proxy that connects directly to your server, a requirement when you cannot
+# know the address of your proxy (e.g. if using Rackspace balancers).
+#
+# The “**” character is syntactic sugar within TrustedProxy to trust not just any
+# proxy that connects directly to your server, but also proxies that connect to those proxies,
+# and all the way back until you reach the original source IP.  It will mean that
+# $request->getClientIp() always gets the originating client IP, no matter how many proxies
+# that client’s request has subsequently passed through.
+#
+# Defaults to "*".
+#
+# See: https://docs.pixelfed.org/technical-documentation/config/#trust_proxies
 TRUST_PROXIES="*"
 TRUST_PROXIES="*"
 
 
-## Passport
+###############################################################
+# Passport configuration
+###############################################################
+#
+# Passport uses encryption keys while generating secure access tokens
+# for your application.
+#
+# By default, the keys are stored as local files but can be set via environment
+# variables when that is more convenient.
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#passport_private_key
 #PASSPORT_PRIVATE_KEY=
 #PASSPORT_PRIVATE_KEY=
+
+# See: https://docs.pixelfed.org/technical-documentation/config/#passport_public_key
 #PASSPORT_PUBLIC_KEY=
 #PASSPORT_PUBLIC_KEY=
+
+###############################################################
+# PHP configuration
+###############################################################
+
+# See: https://www.php.net/manual/en/ini.core.php#ini.memory-limit
+#PHP_MEMORY_LIMIT="128M"
+
+###############################################################
+# MySQL DB container configuration (DO NOT CHANGE)
+###############################################################
+#
+# See "Environment Variables" at https://hub.docker.com/_/mysql
+
+MYSQL_ROOT_PASSWORD="${DB_PASSWORD}"
+MYSQL_USER="${DB_USERNAME}"
+MYSQL_PASSWORD="${DB_PASSWORD}"
+MYSQL_DATABASE="${DB_DATABASE}"
+
+###############################################################
+# MySQL (MariaDB) DB container configuration (DO NOT CHANGE)
+###############################################################
+#
+# See "Start a mariadb server instance with user, password and database" at https://hub.docker.com/_/mariadb
+
+MARIADB_ROOT_PASSWORD="${DB_PASSWORD}"
+MARIADB_USER="${DB_USERNAME}"
+MARIADB_PASSWORD="${DB_PASSWORD}"
+MARIADB_DATABASE="${DB_DATABASE}"
+
+###############################################################
+# PostgreSQL DB container configuration (DO NOT CHANGE)
+###############################################################
+#
+# See "Environment Variables" at https://hub.docker.com/_/postgres
+
+POSTGRES_USER="${DB_USERNAME}"
+POSTGRES_PASSWORD="${DB_PASSWORD}"
+POSTGRES_DB="${DB_DATABASE}"
+
+###############################################################
+# Docker Specific configuration
+###############################################################
+
+# Image to pull the Pixelfed Docker images from
+#
+# Possible values:
+#   - "ghcr.io/pixelfed/pixelfed" to pull from GitHub
+#   - "pixelfed/pixelfed" to pull from DockerHub
+#
+DOCKER_IMAGE="ghcr.io/jippi/pixelfed"
+
+# Port that Redis will listen on *outside* the container (e.g. the host machine)
+DOCKER_REDIS_PORT_EXTERNAL="${REDIS_PORT}"
+
+# Port that the database will listen on *outside* the container (e.g. the host machine)
+#
+# Use "3306" for MySQL/MariaDB and "5432" for PostgreeSQL
+DOCKER_DB_PORT_EXTERNAL="${DB_PORT}"
+
+# Port that the web will listen on *outside* the container (e.g. the host machine)
+DOCKER_WEB_PORT_EXTERNAL="8080"

+ 1 - 1
.github/workflows/docker.yml

@@ -160,7 +160,7 @@ jobs:
         uses: docker/build-push-action@v5
         uses: docker/build-push-action@v5
         with:
         with:
           context: .
           context: .
-          file: contrib/docker/Dockerfile
+          file: Dockerfile
           target: ${{ matrix.target_runtime }}-runtime
           target: ${{ matrix.target_runtime }}-runtime
           platforms: linux/amd64,linux/arm64
           platforms: linux/amd64,linux/arm64
           builder: ${{ steps.buildx.outputs.name }}
           builder: ${{ steps.buildx.outputs.name }}

+ 7 - 7
contrib/docker/Dockerfile → Dockerfile

@@ -114,7 +114,7 @@ WORKDIR /var/www/
 ENV APT_PACKAGES_EXTRA=${APT_PACKAGES_EXTRA}
 ENV APT_PACKAGES_EXTRA=${APT_PACKAGES_EXTRA}
 
 
 # Install and configure base layer
 # Install and configure base layer
-COPY contrib/docker/shared/root/docker/install/base.sh /docker/install/base.sh
+COPY docker/shared/root/docker/install/base.sh /docker/install/base.sh
 RUN --mount=type=cache,id=pixelfed-apt-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/var/lib/apt \
 RUN --mount=type=cache,id=pixelfed-apt-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/var/lib/apt \
 	--mount=type=cache,id=pixelfed-apt-cache-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/var/cache/apt \
 	--mount=type=cache,id=pixelfed-apt-cache-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/var/cache/apt \
     /docker/install/base.sh
     /docker/install/base.sh
@@ -140,7 +140,7 @@ ENV PHP_EXTENSIONS=${PHP_EXTENSIONS}
 ENV PHP_PECL_EXTENSIONS_EXTRA=${PHP_PECL_EXTENSIONS_EXTRA}
 ENV PHP_PECL_EXTENSIONS_EXTRA=${PHP_PECL_EXTENSIONS_EXTRA}
 ENV PHP_PECL_EXTENSIONS=${PHP_PECL_EXTENSIONS}
 ENV PHP_PECL_EXTENSIONS=${PHP_PECL_EXTENSIONS}
 
 
-COPY contrib/docker/shared/root/docker/install/php-extensions.sh /docker/install/php-extensions.sh
+COPY docker/shared/root/docker/install/php-extensions.sh /docker/install/php-extensions.sh
 RUN --mount=type=cache,id=pixelfed-php-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/usr/src/php/ \
 RUN --mount=type=cache,id=pixelfed-php-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/usr/src/php/ \
     --mount=type=cache,id=pixelfed-apt-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/var/lib/apt \
     --mount=type=cache,id=pixelfed-apt-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/var/lib/apt \
 	--mount=type=cache,id=pixelfed-apt-cache-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/var/cache/apt \
 	--mount=type=cache,id=pixelfed-apt-cache-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/var/cache/apt \
@@ -221,7 +221,7 @@ RUN set -ex \
 	&& cp --recursive --link --preserve=all storage storage.skel \
 	&& cp --recursive --link --preserve=all storage storage.skel \
 	&& rm -rf html && ln -s public html
 	&& rm -rf html && ln -s public html
 
 
-COPY contrib/docker/shared/root /
+COPY docker/shared/root /
 
 
 ENTRYPOINT ["/docker/entrypoint.sh"]
 ENTRYPOINT ["/docker/entrypoint.sh"]
 
 
@@ -231,7 +231,7 @@ ENTRYPOINT ["/docker/entrypoint.sh"]
 
 
 FROM shared-runtime AS apache-runtime
 FROM shared-runtime AS apache-runtime
 
 
-COPY contrib/docker/apache/root /
+COPY docker/apache/root /
 
 
 RUN set -ex \
 RUN set -ex \
 	&& a2enmod rewrite remoteip proxy proxy_http \
 	&& a2enmod rewrite remoteip proxy proxy_http \
@@ -245,7 +245,7 @@ CMD ["apache2-foreground"]
 
 
 FROM shared-runtime AS fpm-runtime
 FROM shared-runtime AS fpm-runtime
 
 
-COPY contrib/docker/fpm/root /
+COPY docker/fpm/root /
 
 
 CMD ["php-fpm"]
 CMD ["php-fpm"]
 
 
@@ -275,8 +275,8 @@ RUN --mount=type=cache,id=pixelfed-apt-lists-${PHP_VERSION}-${PHP_DEBIAN_RELEASE
 
 
 # copy docker entrypoints from the *real* nginx image directly
 # copy docker entrypoints from the *real* nginx image directly
 COPY --link --from=nginx-image /docker-entrypoint.d /docker/entrypoint.d/
 COPY --link --from=nginx-image /docker-entrypoint.d /docker/entrypoint.d/
-COPY contrib/docker/nginx/root /
-COPY contrib/docker/nginx/Procfile .
+COPY docker/nginx/root /
+COPY docker/nginx/Procfile .
 
 
 STOPSIGNAL SIGQUIT
 STOPSIGNAL SIGQUIT
 
 

+ 0 - 921
contrib/docker-compose/.env

@@ -1,921 +0,0 @@
-# -*- mode: bash -*-
-# vi: ft=bash
-
-###############################################################
-# Docker-wide configuration
-###############################################################
-
-# Path (relative) to the docker-compose file where containers will store their data
-DOCKER_DATA_ROOT="./data"
-
-# Path (relative) to the docker-compose file where containers will store their config
-DOCKER_CONFIG_ROOT="./config"
-
-# Pixelfed version (image tag) to pull from the registry
-DOCKER_TAG="branch-jippi-fork-apache-8.1"
-
-# Set timezone used by *all* containers - these should be in sync
-#
-# See: https://www.php.net/manual/en/timezones.php
-TZ="UTC"
-
-# Automatically run [artisan migrate --force] if new migrations are detected
-DOCKER_APPLY_NEW_MIGRATIONS_AUTOMATICALLY="0"
-
-###############################################################
-# Pixelfed application configuration
-###############################################################
-
-# A random 32-character string to be used as an encryption key.
-#
-# No default value; use [php artisan key:generate] to generate.
-#
-# This key is used by the Illuminate encrypter service and should be set to a random,
-# 32 character string, otherwise these encrypted strings will not be safe.
-#
-# Please do this before deploying an application!
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#app_key
-APP_KEY=
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#app_name-1
-APP_NAME="Pixelfed Prod"
-
-# Application domains used for routing.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#app_domain
-APP_DOMAIN="pixelfed-test.jippi.dev"
-
-# This URL is used by the console to properly generate URLs when using the Artisan command line tool.
-# You should set this to the root of your application so that it is used when running Artisan tasks.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#app_url
-APP_URL=https://${APP_DOMAIN}
-
-# Application domains used for routing.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#admin_domain
-ADMIN_DOMAIN="${APP_DOMAIN}"
-
-# This value determines the “environment” your application is currently running in.
-# This may determine how you prefer to configure various services your application utilizes.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#app_env
-#APP_ENV="production"
-
-# When your application is in debug mode, detailed error messages with stack traces will
-# be shown on every error that occurs within your application.
-#
-# If disabled, a simple generic error page is shown.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#app_debug
-#APP_DEBUG="false"
-
-# Enable/disable new local account registrations.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#open_registration
-#OPEN_REGISTRATION=true
-
-# Require email verification before a new user can do anything.
-#
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#enforce_email_verification
-#ENFORCE_EMAIL_VERIFICATION="true"
-
-# Allow a maximum number of user accounts.
-#
-# Defaults to "1000".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#pf_max_users
-PF_MAX_USERS="false"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#oauth_enabled
-OAUTH_ENABLED="true"
-
-# Defaults to "UTC".
-#
-# Do not edit your timezone or things will break!
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#app_timezone
-# See: https://www.php.net/manual/en/timezones.php
-APP_TIMEZONE="${TZ}"
-
-# The application locale determines the default locale that will be used by the translation service provider.
-# You are free to set this value to any of the locales which will be supported by the application.
-#
-# Defaults to "en".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#app_locale
-#APP_LOCALE="en"
-
-# The fallback locale determines the locale to use when the current one is not available.
-#
-# You may change the value to correspond to any of the language folders that are provided through your application.
-#
-# Defaults to "en".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#app_fallback_locale
-#APP_FALLBACK_LOCALE="en"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#limit_account_size
-#LIMIT_ACCOUNT_SIZE="true"
-
-# Update the max account size, the per user limit of files in kB.
-#
-# Defaults to "1000000" (1GB).
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#max_account_size-kb
-#MAX_ACCOUNT_SIZE="1000000"
-
-# Update the max photo size, in kB.
-#
-# Defaults to "15000" (15MB).
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#max_photo_size-kb
-#MAX_PHOTO_SIZE="15000"
-
-# Update the max avatar size, in kB.
-#
-# Defaults to "2000" (2MB).
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#max_avatar_size-kb
-#MAX_AVATAR_SIZE="2000"
-
-# Change the caption length limit for new local posts.
-#
-# Defaults to "500".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#max_caption_length
-#MAX_CAPTION_LENGTH="500"
-
-# Change the bio length limit for user profiles.
-#
-# Defaults to "125".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#max_bio_length
-#MAX_BIO_LENGTH="125"
-
-# Change the length limit for user names.
-#
-# Defaults to "30".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#max_name_length
-#MAX_NAME_LENGTH="30"
-
-# The max number of photos allowed per post.
-#
-# Defaults to "4".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#max_album_length
-#MAX_ALBUM_LENGTH="4"
-
-# Resize and optimize image uploads.
-#
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#pf_optimize_images
-#PF_OPTIMIZE_IMAGES="true"
-
-# Set the image optimization quality, must be a value between 1-100.
-#
-# Defaults to "80".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#image_quality
-#IMAGE_QUALITY="80"
-
-# Resize and optimize video uploads.
-#
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#pf_optimize_videos
-#PF_OPTIMIZE_VIDEOS="true"
-
-# Enable account deletion.
-#
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#account_deletion
-#ACCOUNT_DELETION="true"
-
-# Set account deletion queue after X days, set to false to delete accounts immediately.
-#
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#account_delete_after
-#ACCOUNT_DELETE_AFTER="false"
-
-# Defaults to "Pixelfed - Photo sharing for everyone".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#instance_description
-#INSTANCE_DESCRIPTION=
-
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#instance_public_hashtags
-#INSTANCE_PUBLIC_HASHTAGS="false"
-
-# Defaults to "".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#instance_contact_email
-INSTANCE_CONTACT_EMAIL="admin@${APP_DOMAIN}"
-
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#instance_public_local_timeline
-#INSTANCE_PUBLIC_LOCAL_TIMELINE="false"
-
-# Defaults to "".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#banned_usernames
-#BANNED_USERNAMES=
-
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#stories_enabled
-#STORIES_ENABLED="false"
-
-# Defaults to "false".
-#
-# Level is hardcoded to 1.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#restricted_instance
-#RESTRICTED_INSTANCE="false"
-
-###############################################################
-# Database configuration
-###############################################################
-
-# Here you may specify which of the database connections below you wish to use as your default connection for all database work.
-#
-# Of course you may use many connections at once using the database library.
-#
-# Possible values:
-#
-# - "sqlite"
-# - "mysql" (default)
-# - "pgsql"
-# - "sqlsrv"
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#db_connection
-DB_CONNECTION="mysql"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#db_host
-DB_HOST="db"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#db_username
-DB_USERNAME="pixelfed"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#db_password
-DB_PASSWORD="helloworld"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#db_database
-DB_DATABASE="pixelfed_prod"
-
-# Use "3306" for MySQL/MariaDB and "5432" for PostgreeSQL
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#db_port
-DB_PORT="3306"
-
-ENTRYPOINT_DEBUG=0
-
-###############################################################
-# Mail configuration
-###############################################################
-
-# Laravel supports both SMTP and PHP’s “mail” function as drivers for the sending of e-mail.
-# You may specify which one you’re using throughout your application here.
-#
-# Possible values:
-#
-# "smtp" (default)
-# "sendmail"
-# "mailgun"
-# "mandrill"
-# "ses"
-# "sparkpost"
-# "log"
-# "array"
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#mail_driver
-#MAIL_DRIVER="smtp"
-
-# The host address of the SMTP server used by your applications.
-#
-# A default option is provided that is compatible with the Mailgun mail service which will provide reliable deliveries.
-#
-# Defaults to "smtp.mailgun.org".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#mail_host
-#MAIL_HOST="smtp.mailgun.org"
-
-# This is the SMTP port used by your application to deliver e-mails to users of the application.
-#
-# Like the host we have set this value to stay compatible with the Mailgun e-mail application by default.
-#
-# Defaults to 587.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#mail_port
-#MAIL_PORT="587"
-
-# You may wish for all e-mails sent by your application to be sent from the same address.
-#
-# Here, you may specify a name and address that is used globally for all e-mails that are sent by your application.
-#
-# Defaults to "hello@example.com".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#mail_from_address
-MAIL_FROM_ADDRESS="hello@${APP_DOMAIN}"
-
-# Defaults to "Example".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#mail_from_name
-MAIL_FROM_NAME="Pixelfed @ ${APP_DOMAIN}"
-
-# If your SMTP server requires a username for authentication, you should set it here.
-#
-# This will get used to authenticate with your server on connection.
-# You may also set the “password” value below this one.
-#
-# Defaults to "".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#mail_username
-#MAIL_USERNAME=
-
-# Defaults to "".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#mail_password
-#MAIL_PASSWORD=
-
-# Here you may specify the encryption protocol that should be used when the application send e-mail messages.
-#
-# A sensible default using the transport layer security protocol should provide great security.
-#
-# Defaults to "tls".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#mail_encryption
-#MAIL_ENCRYPTION="tls"
-
-###############################################################
-# Redis configuration
-###############################################################
-
-# Defaults to "phpredis".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#db_username
-#REDIS_CLIENT="phpredis"
-
-# Defaults to "tcp".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#redis_scheme
-#REDIS_SCHEME="tcp"
-
-# Defaults to "localhost".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#redis_host
-REDIS_HOST="redis"
-
-# Defaults to null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#redis_password
-#REDIS_PASSWORD=
-
-# Defaults to 6379.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#redis_port
-REDIS_PORT="6379"
-
-# Defaults to 0.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#redis_database
-#REDIS_DATABASE="0"
-
-###############################################################
-# Cache settings
-###############################################################
-
-# This option controls the default cache connection that gets used while using this caching library.
-#
-# This connection is used when another is not explicitly specified when executing a given caching function.
-#
-# Possible values:
-# - "apc"
-# - "array"
-# - "database"
-# - "file" (default)
-# - "memcached"
-# - "redis"
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cache_driver
-CACHE_DRIVER="redis"
-
-# Defaults to ${APP_NAME}_cache, or laravel_cache if no APP_NAME is set.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cache_prefix
-# CACHE_PREFIX="{APP_NAME}_cache"
-
-###############################################################
-# Horizon settings
-###############################################################
-
-# This prefix will be used when storing all Horizon data in Redis.
-#
-# You may modify the prefix when you are running multiple installations
-# of Horizon on the same server so that they don’t have problems.
-#
-# Defaults to "horizon-".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_prefix
-#HORIZON_PREFIX="horizon-"
-
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_darkmode
-#HORIZON_DARKMODE="false"
-
-# This value (in MB) describes the maximum amount of memory (in MB) the Horizon worker
-# may consume before it is terminated and restarted.
-#
-# You should set this value according to the resources available to your server.
-#
-# Defaults to "64".
-#HORIZON_MEMORY_LIMIT="64"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_balance_strategy
-#HORIZON_BALANCE_STRATEGY="auto"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_min_processes
-#HORIZON_MIN_PROCESSES="1"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_max_processes
-#HORIZON_MAX_PROCESSES="20"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_supervisor_memory
-#HORIZON_SUPERVISOR_MEMORY="64"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_supervisor_tries
-#HORIZON_SUPERVISOR_TRIES="3"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_supervisor_nice
-#HORIZON_SUPERVISOR_NICE="0"
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#horizon_supervisor_timeout
-#HORIZON_SUPERVISOR_TIMEOUT="300"
-
-###############################################################
-# Experiments
-###############################################################
-
-# Text only posts (alpha).
-#
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#exp_top
-#EXP_TOP="false"
-
-# Poll statuses (alpha).
-#
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#exp_polls
-#EXP_POLLS="false"
-
-# Cached public timeline for larger instances (beta).
-#
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#exp_cpt
-#EXP_CPT="false"
-
-# Enforce Mastoapi Compatibility (alpha).
-#
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#exp_emc
-EXP_EMC="true"
-
-###############################################################
-# ActivityPub confguration
-###############################################################
-
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#activity_pub
-ACTIVITY_PUB="true"
-
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#ap_remote_follow
-#AP_REMOTE_FOLLOW="true"
-
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#ap_sharedinbox
-#AP_SHAREDINBOX="true"
-
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#ap_inbox
-#AP_INBOX="true"
-
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#ap_outbox
-#AP_OUTBOX="true"
-
-###############################################################
-# Federation confguration
-###############################################################
-
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#atom_feeds
-#ATOM_FEEDS="true"
-
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#nodeinfo
-#NODEINFO="true"
-
-# Defaults to "true".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#webfinger
-#WEBFINGER="true"
-
-###############################################################
-# Storage (cloud)
-###############################################################
-
-# Store media on object storage like S3, Digital Ocean Spaces, Rackspace
-#
-# Defaults to "false".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#pf_enable_cloud
-#PF_ENABLE_CLOUD="false"
-
-# Many applications store files both locally and in the cloud.
-#
-# For this reason, you may specify a default “cloud” driver here.
-# This driver will be bound as the Cloud disk implementation in the container.
-#
-# Defaults to "s3".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#filesystem_cloud
-#FILESYSTEM_CLOUD="s3"
-
-# Defaults to true.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#media_delete_local_after_cloud
-#MEDIA_DELETE_LOCAL_AFTER_CLOUD="true"
-
-###############################################################
-# Storage (cloud) - S3
-###############################################################
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#aws_access_key_id
-#AWS_ACCESS_KEY_ID=
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#aws_secret_access_key
-#AWS_SECRET_ACCESS_KEY=
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#aws_default_region
-#AWS_DEFAULT_REGION=
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#aws_bucket
-#AWS_BUCKET=
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#aws_url
-#AWS_URL=
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#aws_endpoint
-#AWS_ENDPOINT=
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#aws_use_path_style_endpoint
-#AWS_USE_PATH_STYLE_ENDPOINT="false"
-
-###############################################################
-# COSTAR - Confirm Object Sentiment Transform and Reduce
-###############################################################
-
-# Comma-separated list of domains to block.
-#
-# Defaults to null
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cs_blocked_domains
-#CS_BLOCKED_DOMAINS=
-
-# Comma-separated list of domains to add warnings.
-#
-# Defaults to null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cs_cw_domains
-#CS_CW_DOMAINS=
-
-# Comma-separated list of domains to remove from public timelines.
-#
-# Defaults to null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cs_unlisted_domains
-#CS_UNLISTED_DOMAINS=
-
-# Comma-separated list of keywords to block.
-#
-# Defaults to null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cs_blocked_keywords
-#CS_BLOCKED_KEYWORDS=
-
-# Comma-separated list of keywords to add warnings.
-#
-# Defaults to null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cs_cw_keywords
-#CS_CW_KEYWORDS=
-
-# Comma-separated list of keywords to remove from public timelines.
-#
-# Defaults to null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cs_unlisted_keywords
-#CS_UNLISTED_KEYWORDS=
-
-# Defaults to null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cs_blocked_actor
-#CS_BLOCKED_ACTOR=
-
-# Defaults to null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cs_cw_actor
-#CS_CW_ACTOR=
-
-# Defaults to null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#cs_unlisted_actor
-#CS_UNLISTED_ACTOR=
-
-###############################################################
-# Media
-###############################################################
-
-# Defaults to false.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#media_exif_database
-MEDIA_EXIF_DATABASE="true"
-
-# Pixelfed supports GD or ImageMagick to process images.
-#
-# Defaults to "gd".
-#
-# Possible values:
-#  - "gd" (default)
-#  - "imagick"
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#image_driver
-#IMAGE_DRIVER="gd"
-
-###############################################################
-# Logging
-###############################################################
-
-# Possible values:
-#
-# - "stack" (default)
-# - "single"
-# - "daily"
-# - "slack"
-# - "stderr"
-# - "syslog"
-# - "errorlog"
-# - "null"
-# - "emergency"
-# - "media"
-LOG_CHANNEL="stderr"
-
-# Used by single, stderr and syslog.
-#
-# Defaults to "debug" for all of those.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#log_level
-#LOG_LEVEL="debug"
-
-# Used by stderr.
-#
-# Defaults to "".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#log_stderr_formatter
-#LOG_STDERR_FORMATTER=
-
-# Used by slack.
-#
-# Defaults to "".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#log_slack_webhook_url
-#LOG_SLACK_WEBHOOK_URL=
-
-###############################################################
-# Broadcasting settings
-###############################################################
-
-# This option controls the default broadcaster that will be used by the framework when an event needs to be broadcast.
-#
-# Possible values:
-# - "pusher"
-# - "redis"
-# - "log"
-# - "null" (default)
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#broadcast_driver
-BROADCAST_DRIVER=redis
-
-###############################################################
-# Other settings
-###############################################################
-
-# Defaults to true.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#restrict_html_types
-#RESTRICT_HTML_TYPES="true"
-
-###############################################################
-# Queue configuration
-###############################################################
-
-# Possible values:
-#   - "sync" (default)
-#   - "database"
-#   - "beanstalkd"
-#   - "sqs"
-#   - "redis"
-#   - "null"
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#queue_driver
-QUEUE_DRIVER="redis"
-
-###############################################################
-# Queue (SQS) configuration
-###############################################################
-
-# Defaults to "your-public-key".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#sqs_key
-#SQS_KEY="your-public-key"
-
-# Defaults to "your-secret-key".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#sqs_secret
-#SQS_SECRET="your-secret-key"
-
-# Defaults to "https://sqs.us-east-1.amazonaws.com/your-account-id".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#sqs_prefix
-#SQS_PREFIX=
-
-# Defaults to "your-queue-name".
-#
-# https://docs.pixelfed.org/technical-documentation/config/#sqs_queue
-#SQS_QUEUE="your-queue-name"
-
-# Defaults to "us-east-1".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#sqs_region
-#SQS_REGION="us-east-1"
-
-###############################################################
-# Session configuration
-###############################################################
-
-# This option controls the default session “driver” that will be used on requests.
-#
-# By default, we will use the lightweight native driver but you may specify any of the other wonderful drivers provided here.
-#
-# Possible values:
-#   - "file"
-#   - "cookie"
-#   - "database" (default)
-#   - "apc"
-#   - "memcached"
-#   - "redis"
-#   - "array"
-SESSION_DRIVER="redis"
-
-# Here you may specify the number of minutes that you wish the session to be allowed to remain idle before it expires.
-#
-# If you want them to immediately expire on the browser closing, set that option.
-#
-# Defaults to 86400.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#session_lifetime
-#SESSION_LIFETIME="86400"
-
-# Here you may change the domain of the cookie used to identify a session in your application.
-#
-# This will determine which domains the cookie is available to in your application.
-#
-# A sensible default has been set.
-#
-# Defaults to the value of APP_DOMAIN, or null.
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#session_domain
-#SESSION_DOMAIN="${APP_DOMAIN}"
-
-###############################################################
-# Proxy configuration
-###############################################################
-
-# Set trusted proxy IP addresses.
-#
-# Both IPv4 and IPv6 addresses are supported, along with CIDR notation.
-#
-# The “*” character is syntactic sugar within TrustedProxy to trust any
-# proxy that connects directly to your server, a requirement when you cannot
-# know the address of your proxy (e.g. if using Rackspace balancers).
-#
-# The “**” character is syntactic sugar within TrustedProxy to trust not just any
-# proxy that connects directly to your server, but also proxies that connect to those proxies,
-# and all the way back until you reach the original source IP.  It will mean that
-# $request->getClientIp() always gets the originating client IP, no matter how many proxies
-# that client’s request has subsequently passed through.
-#
-# Defaults to "*".
-#
-# See: https://docs.pixelfed.org/technical-documentation/config/#trust_proxies
-TRUST_PROXIES="*"
-
-###############################################################
-# Passport configuration
-###############################################################
-#
-# Passport uses encryption keys while generating secure access tokens
-# for your application.
-#
-# By default, the keys are stored as local files but can be set via environment
-# variables when that is more convenient.
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#passport_private_key
-#PASSPORT_PRIVATE_KEY=
-
-# See: https://docs.pixelfed.org/technical-documentation/config/#passport_public_key
-#PASSPORT_PUBLIC_KEY=
-
-###############################################################
-# PHP configuration
-###############################################################
-
-# See: https://www.php.net/manual/en/ini.core.php#ini.memory-limit
-#PHP_MEMORY_LIMIT="128M"
-
-###############################################################
-# MySQL DB container configuration (DO NOT CHANGE)
-###############################################################
-#
-# See "Environment Variables" at https://hub.docker.com/_/mysql
-
-MYSQL_ROOT_PASSWORD="${DB_PASSWORD}"
-MYSQL_USER="${DB_USERNAME}"
-MYSQL_PASSWORD="${DB_PASSWORD}"
-MYSQL_DATABASE="${DB_DATABASE}"
-
-###############################################################
-# MySQL (MariaDB) DB container configuration (DO NOT CHANGE)
-###############################################################
-#
-# See "Start a mariadb server instance with user, password and database" at https://hub.docker.com/_/mariadb
-
-MARIADB_ROOT_PASSWORD="${DB_PASSWORD}"
-MARIADB_USER="${DB_USERNAME}"
-MARIADB_PASSWORD="${DB_PASSWORD}"
-MARIADB_DATABASE="${DB_DATABASE}"
-
-###############################################################
-# PostgreSQL DB container configuration (DO NOT CHANGE)
-###############################################################
-#
-# See "Environment Variables" at https://hub.docker.com/_/postgres
-
-POSTGRES_USER="${DB_USERNAME}"
-POSTGRES_PASSWORD="${DB_PASSWORD}"
-POSTGRES_DB="${DB_DATABASE}"
-
-###############################################################
-# Docker Specific configuration
-###############################################################
-
-# Image to pull the Pixelfed Docker images from
-#
-# Possible values:
-#   - "ghcr.io/pixelfed/pixelfed" to pull from GitHub
-#   - "pixelfed/pixelfed" to pull from DockerHub
-#
-DOCKER_IMAGE="ghcr.io/jippi/pixelfed"
-
-# Port that Redis will listen on *outside* the container (e.g. the host machine)
-DOCKER_REDIS_PORT_EXTERNAL="${REDIS_PORT}"
-
-# Port that the database will listen on *outside* the container (e.g. the host machine)
-#
-# Use "3306" for MySQL/MariaDB and "5432" for PostgreeSQL
-DOCKER_DB_PORT_EXTERNAL="${DB_PORT}"
-
-# Port that the web will listen on *outside* the container (e.g. the host machine)
-DOCKER_WEB_PORT_EXTERNAL="8080"

+ 0 - 34
contrib/docker-compose/README.md

@@ -1,34 +0,0 @@
-# Pixelfed + Docker + Docker Compose
-
-## Prerequisites
-
-* One of the `docker-compose.yml` files in this directory
-* A copy of the `example.env` file named `.env` next to `docker-compose.yml`
-
-Your folder should look like this
-
-```plain
-.
-├── .env
-└── docker-compose.yml
-```
-
-## Modifying your settings (`.env` file)
-
-Minimum required settings to change is:
-
-* `APP_NAME`
-* `APP_DOMAIN`
-* `DB_PASSWORD`
-
-See the [`Configure environment variables`](https://docs.pixelfed.org/running-pixelfed/installation/#app-variables) documentation for details!
-
-You need to mainly focus on following sections
-
-* [App variables](https://docs.pixelfed.org/running-pixelfed/installation/#app-variables)
-* [Email variables](https://docs.pixelfed.org/running-pixelfed/installation/#email-variables)
-
-Since the following things are configured for you out of the box:
-
-* `Redis`
-* `Database` (except for `DB_PASSWORD`)

+ 0 - 67
contrib/docker-compose/docker-compose.yml

@@ -1,67 +0,0 @@
----
-version: "3"
-
-services:
-  web:
-    image: "${DOCKER_IMAGE}:${DOCKER_TAG}"
-    # build:
-    #   context: ../..
-    #   dockerfile: contrib/docker/Dockerfile
-    #   target: apache-runtime
-    restart: unless-stopped
-    env_file:
-      - "./.env"
-    volumes:
-      - "./.env:/var/www/.env"
-      - "${DOCKER_DATA_ROOT}/pixelfed/cache:/var/www/bootstrap/cache"
-      - "${DOCKER_DATA_ROOT}/pixelfed/storage:/var/www/storage"
-    ports:
-      - "${DOCKER_WEB_PORT_EXTERNAL}:80"
-    depends_on:
-      - db
-      - redis
-
-  worker:
-    image: "${DOCKER_IMAGE}:${DOCKER_TAG}"
-    # build:
-    #   context: ../..
-    #   dockerfile: contrib/docker/Dockerfile
-    #   target: apache-runtime
-    command: gosu www-data php artisan horizon
-    restart: unless-stopped
-    env_file:
-      - "./.env"
-    volumes:
-      - "./.env:/var/www/.env"
-      - "${DOCKER_DATA_ROOT}/pixelfed/cache:/var/www/bootstrap/cache"
-      - "${DOCKER_DATA_ROOT}/pixelfed/storage:/var/www/storage"
-    depends_on:
-      - db
-      - redis
-
-  db:
-    image: mariadb:11.2
-    command: --default-authentication-plugin=mysql_native_password
-    restart: unless-stopped
-    env_file:
-      - "./.env"
-    volumes:
-      - "${DOCKER_DATA_ROOT}/db:/var/lib/mysql"
-    ports:
-      - "${DOCKER_DB_PORT_EXTERNAL}:3306"
-
-  redis:
-    image: redis:7
-    restart: unless-stopped
-    env_file:
-      - "./.env"
-    volumes:
-      - "${DOCKER_CONFIG_ROOT}/redis:/etc/redis"
-      - "${DOCKER_DATA_ROOT}/redis:/data"
-    ports:
-      - "${DOCKER_REDIS_PORT_EXTERNAL}:6399"
-    healthcheck:
-      interval: 10s
-      timeout: 5s
-      retries: 2
-      test: ["CMD", "redis-cli", "-p", "6399", "ping"]

+ 34 - 57
docker-compose.yml

@@ -1,82 +1,59 @@
 ---
 ---
-version: '3'
+version: "3"
 
 
-# In order to set configuration, please use a .env file in
-# your compose project directory (the same directory as your
-# docker-compose.yml), and set database options, application
-# name, key, and other settings there.
-# A list of available settings is available in .env.example
-#
-# The services should scale properly across a swarm cluster
-# if the volumes are properly shared between cluster members.
+###############################################################
+# Please see docker/README.md for usage information
+###############################################################
 
 
 services:
 services:
-## App and Worker
-  app:
-    # Comment to use dockerhub image
-    image: pixelfed/pixelfed:latest
+  web:
+    image: "${DOCKER_IMAGE}:${DOCKER_TAG}"
+    # build:
+    #   target: apache-runtime
     restart: unless-stopped
     restart: unless-stopped
-    env_file:
-      - .env.docker
     volumes:
     volumes:
-      - app-storage:/var/www/storage
-      - app-bootstrap:/var/www/bootstrap
-      - "./.env.docker:/var/www/.env"
-    networks:
-      - external
-      - internal
+      - "./.env:/var/www/.env"
+      - "${DOCKER_DATA_ROOT}/pixelfed/cache:/var/www/bootstrap/cache"
+      - "${DOCKER_DATA_ROOT}/pixelfed/storage:/var/www/storage"
     ports:
     ports:
-      - "8080:80"
+      - "${DOCKER_WEB_PORT_EXTERNAL}:80"
     depends_on:
     depends_on:
       - db
       - db
       - redis
       - redis
 
 
   worker:
   worker:
-    image: pixelfed/pixelfed:latest
+    image: "${DOCKER_IMAGE}:${DOCKER_TAG}"
+    # build:
+    #   target: apache-runtime
+    command: gosu www-data php artisan horizon
     restart: unless-stopped
     restart: unless-stopped
-    env_file:
-      - .env.docker
     volumes:
     volumes:
-      - app-storage:/var/www/storage
-      - app-bootstrap:/var/www/bootstrap
-    networks:
-      - external
-      - internal
-    command: gosu www-data php artisan horizon
+      - "./.env:/var/www/.env"
+      - "${DOCKER_DATA_ROOT}/pixelfed/cache:/var/www/bootstrap/cache"
+      - "${DOCKER_DATA_ROOT}/pixelfed/storage:/var/www/storage"
     depends_on:
     depends_on:
       - db
       - db
       - redis
       - redis
 
 
-## DB and Cache
   db:
   db:
-    image: mariadb:jammy
-    restart: unless-stopped
-    networks:
-      - internal
+    image: mariadb:11.2
     command: --default-authentication-plugin=mysql_native_password
     command: --default-authentication-plugin=mysql_native_password
-    env_file:
-      - .env.docker
+    restart: unless-stopped
     volumes:
     volumes:
-      - "db-data:/var/lib/mysql"
+      - "${DOCKER_DATA_ROOT}/db:/var/lib/mysql"
+    ports:
+      - "${DOCKER_DB_PORT_EXTERNAL}:3306"
 
 
   redis:
   redis:
-    image: redis:5-alpine
+    image: redis:7
     restart: unless-stopped
     restart: unless-stopped
-    env_file:
-      - .env.docker
     volumes:
     volumes:
-      - "redis-data:/data"
-    networks:
-      - internal
-
-volumes:
-  db-data:
-  redis-data:
-  app-storage:
-  app-bootstrap:
-
-networks:
-  internal:
-    internal: true
-  external:
-    driver: bridge
+      - "${DOCKER_CONFIG_ROOT}/redis:/etc/redis"
+      - "${DOCKER_DATA_ROOT}/redis:/data"
+    ports:
+      - "${DOCKER_REDIS_PORT_EXTERNAL}:6399"
+    healthcheck:
+      interval: 10s
+      timeout: 5s
+      retries: 2
+      test: ["CMD", "redis-cli", "-p", "6399", "ping"]

+ 34 - 1
contrib/docker/README.md → docker/README.md

@@ -1,4 +1,37 @@
-# Pixelfed Docker images
+# Pixelfed + Docker + Docker Compose
+
+## Prerequisites
+
+* One of the `docker-compose.yml` files in this directory
+* A copy of the `example.env` file named `.env` next to `docker-compose.yml`
+
+Your folder should look like this
+
+```plain
+.
+├── .env
+└── docker-compose.yml
+```
+
+## Modifying your settings (`.env` file)
+
+Minimum required settings to change is:
+
+* `APP_NAME`
+* `APP_DOMAIN`
+* `DB_PASSWORD`
+
+See the [`Configure environment variables`](https://docs.pixelfed.org/running-pixelfed/installation/#app-variables) documentation for details!
+
+You need to mainly focus on following sections
+
+* [App variables](https://docs.pixelfed.org/running-pixelfed/installation/#app-variables)
+* [Email variables](https://docs.pixelfed.org/running-pixelfed/installation/#email-variables)
+
+Since the following things are configured for you out of the box:
+
+* `Redis`
+* `Database` (except for `DB_PASSWORD`)
 
 
 ## Runtimes
 ## Runtimes
 
 

+ 0 - 0
contrib/docker/apache/root/etc/apache2/conf-available/remoteip.conf → docker/apache/root/etc/apache2/conf-available/remoteip.conf


+ 0 - 0
contrib/docker/fpm/root/.gitkeep → docker/fpm/root/.gitkeep


+ 0 - 0
contrib/docker/nginx/Procfile → docker/nginx/Procfile


+ 0 - 0
contrib/docker/nginx/root/docker/templates/etc/nginx/conf.d/default.conf → docker/nginx/root/docker/templates/etc/nginx/conf.d/default.conf


+ 0 - 0
contrib/docker/shared/root/docker/entrypoint.d/01-permissions.sh → docker/shared/root/docker/entrypoint.d/01-permissions.sh


+ 0 - 0
contrib/docker/shared/root/docker/entrypoint.d/04-defaults.envsh → docker/shared/root/docker/entrypoint.d/04-defaults.envsh


+ 0 - 0
contrib/docker/shared/root/docker/entrypoint.d/05-templating.sh → docker/shared/root/docker/entrypoint.d/05-templating.sh


+ 0 - 0
contrib/docker/shared/root/docker/entrypoint.d/10-storage.sh → docker/shared/root/docker/entrypoint.d/10-storage.sh


+ 0 - 0
contrib/docker/shared/root/docker/entrypoint.d/11-first-time-setup.sh → docker/shared/root/docker/entrypoint.d/11-first-time-setup.sh


+ 0 - 0
contrib/docker/shared/root/docker/entrypoint.d/12-migrations.sh → docker/shared/root/docker/entrypoint.d/12-migrations.sh


+ 0 - 0
contrib/docker/shared/root/docker/entrypoint.d/20-horizon.sh → docker/shared/root/docker/entrypoint.d/20-horizon.sh


+ 0 - 0
contrib/docker/shared/root/docker/entrypoint.d/30-cache.sh → docker/shared/root/docker/entrypoint.d/30-cache.sh


+ 0 - 0
contrib/docker/shared/root/docker/entrypoint.sh → docker/shared/root/docker/entrypoint.sh


+ 0 - 0
contrib/docker/shared/root/docker/helpers.sh → docker/shared/root/docker/helpers.sh


+ 0 - 0
contrib/docker/shared/root/docker/install/base.sh → docker/shared/root/docker/install/base.sh


+ 0 - 0
contrib/docker/shared/root/docker/install/php-extensions.sh → docker/shared/root/docker/install/php-extensions.sh


+ 0 - 0
contrib/docker/shared/root/docker/templates/usr/local/etc/php/php.ini → docker/shared/root/docker/templates/usr/local/etc/php/php.ini