diff --git a/.env.docker b/.env.docker index ce4cfe87c..10e88b8b5 100644 --- a/.env.docker +++ b/.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= -## General Settings +# See: https://docs.pixelfed.org/technical-documentation/config/#app_name-1 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 +# Application domains used for routing. +# +# See: https://docs.pixelfed.org/technical-documentation/config/#app_domain +APP_DOMAIN="__CHANGE_ME__" -APP_TIMEZONE=UTC -APP_LOCALE=en +# 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} -## 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 +# Application domains used for routing. +# +# See: https://docs.pixelfed.org/technical-documentation/config/#admin_domain +ADMIN_DOMAIN="${APP_DOMAIN}" -## Instance +# 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_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= -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 +# Defaults to "false". +# +# See: https://docs.pixelfed.org/technical-documentation/config/#stories_enabled +#STORIES_ENABLED="false" -## 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 +# Defaults to "false". +# +# Level is hardcoded to 1. +# +# See: https://docs.pixelfed.org/technical-documentation/config/#restricted_instance +#RESTRICTED_INSTANCE="false" -## Databases (Postgres) -#DB_CONNECTION=pgsql -#DB_HOST=postgres -#DB_PORT=5432 -#DB_DATABASE=pixelfed -#DB_USERNAME=postgres -#DB_PASSWORD=postgres +############################################################### +# Database configuration +############################################################### -## Cache (Redis) -REDIS_CLIENT=phpredis -REDIS_SCHEME=tcp -REDIS_HOST=redis -REDIS_PASSWORD=redis_password -REDIS_PORT=6379 -REDIS_DATABASE=0 +# 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" -HORIZON_PREFIX="horizon-" +# See: https://docs.pixelfed.org/technical-documentation/config/#db_host +DB_HOST="db" -## EXPERIMENTS -EXP_LC=false -EXP_REC=false -EXP_LOOPS=false +# See: https://docs.pixelfed.org/technical-documentation/config/#db_username +DB_USERNAME="pixelfed" -## 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 +# See: https://docs.pixelfed.org/technical-documentation/config/#db_password +DB_PASSWORD="helloworld" -## S3 -FILESYSTEM_CLOUD=s3 -PF_ENABLE_CLOUD=false +# 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= -#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 -PF_COSTAR_ENABLED=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 -MEDIA_EXIF_DATABASE=false +############################################################### -## Logging -LOG_CHANNEL=stderr +# Defaults to false. +# +# See: https://docs.pixelfed.org/technical-documentation/config/#media_exif_database +MEDIA_EXIF_DATABASE="true" -## Image -IMAGE_DRIVER=imagick +# 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" -## Broadcasting: log driver for local development -BROADCAST_DRIVER=log +############################################################### +# Logging +############################################################### -## Cache -CACHE_DRIVER=redis +# Possible values: +# +# - "stack" (default) +# - "single" +# - "daily" +# - "slack" +# - "stderr" +# - "syslog" +# - "errorlog" +# - "null" +# - "emergency" +# - "media" +LOG_CHANNEL="stderr" -## Purify -RESTRICT_HTML_TYPES=true +# 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" -## Queue -QUEUE_DRIVER=redis +# Used by stderr. +# +# Defaults to "". +# +# See: https://docs.pixelfed.org/technical-documentation/config/#log_stderr_formatter +#LOG_STDERR_FORMATTER= -## Session -SESSION_DRIVER=redis +# Used by slack. +# +# Defaults to "". +# +# See: https://docs.pixelfed.org/technical-documentation/config/#log_slack_webhook_url +#LOG_SLACK_WEBHOOK_URL= -## Trusted Proxy +############################################################### +# 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 +############################################################### +# 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" diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b71c08c87..f53559b37 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -160,7 +160,7 @@ jobs: uses: docker/build-push-action@v5 with: context: . - file: contrib/docker/Dockerfile + file: Dockerfile target: ${{ matrix.target_runtime }}-runtime platforms: linux/amd64,linux/arm64 builder: ${{ steps.buildx.outputs.name }} diff --git a/contrib/docker/Dockerfile b/Dockerfile similarity index 96% rename from contrib/docker/Dockerfile rename to Dockerfile index 8ef6a99d4..116631f60 100644 --- a/contrib/docker/Dockerfile +++ b/Dockerfile @@ -114,7 +114,7 @@ WORKDIR /var/www/ ENV APT_PACKAGES_EXTRA=${APT_PACKAGES_EXTRA} # 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 \ --mount=type=cache,id=pixelfed-apt-cache-${PHP_VERSION}-${PHP_DEBIAN_RELEASE}-${TARGETPLATFORM},sharing=locked,target=/var/cache/apt \ /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=${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/ \ --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 \ @@ -221,7 +221,7 @@ RUN set -ex \ && cp --recursive --link --preserve=all storage storage.skel \ && rm -rf html && ln -s public html -COPY contrib/docker/shared/root / +COPY docker/shared/root / ENTRYPOINT ["/docker/entrypoint.sh"] @@ -231,7 +231,7 @@ ENTRYPOINT ["/docker/entrypoint.sh"] FROM shared-runtime AS apache-runtime -COPY contrib/docker/apache/root / +COPY docker/apache/root / RUN set -ex \ && a2enmod rewrite remoteip proxy proxy_http \ @@ -245,7 +245,7 @@ CMD ["apache2-foreground"] FROM shared-runtime AS fpm-runtime -COPY contrib/docker/fpm/root / +COPY docker/fpm/root / 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 --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 diff --git a/contrib/docker-compose/.env b/contrib/docker-compose/.env deleted file mode 100644 index c9e235533..000000000 --- a/contrib/docker-compose/.env +++ /dev/null @@ -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" diff --git a/contrib/docker-compose/README.md b/contrib/docker-compose/README.md deleted file mode 100644 index 137773f08..000000000 --- a/contrib/docker-compose/README.md +++ /dev/null @@ -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`) diff --git a/contrib/docker-compose/docker-compose.yml b/contrib/docker-compose/docker-compose.yml deleted file mode 100644 index e43e36c78..000000000 --- a/contrib/docker-compose/docker-compose.yml +++ /dev/null @@ -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"] diff --git a/docker-compose.yml b/docker-compose.yml index 6fca2eeb3..4b93c75e9 100644 --- a/docker-compose.yml +++ b/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: -## 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 - env_file: - - .env.docker 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: - - "8080:80" + - "${DOCKER_WEB_PORT_EXTERNAL}:80" depends_on: - db - redis worker: - image: pixelfed/pixelfed:latest - restart: unless-stopped - env_file: - - .env.docker - volumes: - - app-storage:/var/www/storage - - app-bootstrap:/var/www/bootstrap - networks: - - external - - internal + image: "${DOCKER_IMAGE}:${DOCKER_TAG}" + # build: + # target: apache-runtime command: gosu www-data php artisan horizon + restart: unless-stopped + 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 and Cache db: - image: mariadb:jammy - restart: unless-stopped - networks: - - internal + image: mariadb:11.2 command: --default-authentication-plugin=mysql_native_password - env_file: - - .env.docker + restart: unless-stopped volumes: - - "db-data:/var/lib/mysql" + - "${DOCKER_DATA_ROOT}/db:/var/lib/mysql" + ports: + - "${DOCKER_DB_PORT_EXTERNAL}:3306" redis: - image: redis:5-alpine + image: redis:7 restart: unless-stopped - env_file: - - .env.docker 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"] diff --git a/contrib/docker/README.md b/docker/README.md similarity index 91% rename from contrib/docker/README.md rename to docker/README.md index 443ab6423..03bc31246 100644 --- a/contrib/docker/README.md +++ b/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 diff --git a/contrib/docker/apache/root/etc/apache2/conf-available/remoteip.conf b/docker/apache/root/etc/apache2/conf-available/remoteip.conf similarity index 100% rename from contrib/docker/apache/root/etc/apache2/conf-available/remoteip.conf rename to docker/apache/root/etc/apache2/conf-available/remoteip.conf diff --git a/contrib/docker/fpm/root/.gitkeep b/docker/fpm/root/.gitkeep similarity index 100% rename from contrib/docker/fpm/root/.gitkeep rename to docker/fpm/root/.gitkeep diff --git a/contrib/docker/nginx/Procfile b/docker/nginx/Procfile similarity index 100% rename from contrib/docker/nginx/Procfile rename to docker/nginx/Procfile diff --git a/contrib/docker/nginx/root/docker/templates/etc/nginx/conf.d/default.conf b/docker/nginx/root/docker/templates/etc/nginx/conf.d/default.conf similarity index 100% rename from contrib/docker/nginx/root/docker/templates/etc/nginx/conf.d/default.conf rename to docker/nginx/root/docker/templates/etc/nginx/conf.d/default.conf diff --git a/contrib/docker/shared/root/docker/entrypoint.d/01-permissions.sh b/docker/shared/root/docker/entrypoint.d/01-permissions.sh similarity index 100% rename from contrib/docker/shared/root/docker/entrypoint.d/01-permissions.sh rename to docker/shared/root/docker/entrypoint.d/01-permissions.sh diff --git a/contrib/docker/shared/root/docker/entrypoint.d/04-defaults.envsh b/docker/shared/root/docker/entrypoint.d/04-defaults.envsh similarity index 100% rename from contrib/docker/shared/root/docker/entrypoint.d/04-defaults.envsh rename to docker/shared/root/docker/entrypoint.d/04-defaults.envsh diff --git a/contrib/docker/shared/root/docker/entrypoint.d/05-templating.sh b/docker/shared/root/docker/entrypoint.d/05-templating.sh similarity index 100% rename from contrib/docker/shared/root/docker/entrypoint.d/05-templating.sh rename to docker/shared/root/docker/entrypoint.d/05-templating.sh diff --git a/contrib/docker/shared/root/docker/entrypoint.d/10-storage.sh b/docker/shared/root/docker/entrypoint.d/10-storage.sh similarity index 100% rename from contrib/docker/shared/root/docker/entrypoint.d/10-storage.sh rename to docker/shared/root/docker/entrypoint.d/10-storage.sh diff --git a/contrib/docker/shared/root/docker/entrypoint.d/11-first-time-setup.sh b/docker/shared/root/docker/entrypoint.d/11-first-time-setup.sh similarity index 100% rename from contrib/docker/shared/root/docker/entrypoint.d/11-first-time-setup.sh rename to docker/shared/root/docker/entrypoint.d/11-first-time-setup.sh diff --git a/contrib/docker/shared/root/docker/entrypoint.d/12-migrations.sh b/docker/shared/root/docker/entrypoint.d/12-migrations.sh similarity index 100% rename from contrib/docker/shared/root/docker/entrypoint.d/12-migrations.sh rename to docker/shared/root/docker/entrypoint.d/12-migrations.sh diff --git a/contrib/docker/shared/root/docker/entrypoint.d/20-horizon.sh b/docker/shared/root/docker/entrypoint.d/20-horizon.sh similarity index 100% rename from contrib/docker/shared/root/docker/entrypoint.d/20-horizon.sh rename to docker/shared/root/docker/entrypoint.d/20-horizon.sh diff --git a/contrib/docker/shared/root/docker/entrypoint.d/30-cache.sh b/docker/shared/root/docker/entrypoint.d/30-cache.sh similarity index 100% rename from contrib/docker/shared/root/docker/entrypoint.d/30-cache.sh rename to docker/shared/root/docker/entrypoint.d/30-cache.sh diff --git a/contrib/docker/shared/root/docker/entrypoint.sh b/docker/shared/root/docker/entrypoint.sh similarity index 100% rename from contrib/docker/shared/root/docker/entrypoint.sh rename to docker/shared/root/docker/entrypoint.sh diff --git a/contrib/docker/shared/root/docker/helpers.sh b/docker/shared/root/docker/helpers.sh similarity index 100% rename from contrib/docker/shared/root/docker/helpers.sh rename to docker/shared/root/docker/helpers.sh diff --git a/contrib/docker/shared/root/docker/install/base.sh b/docker/shared/root/docker/install/base.sh similarity index 100% rename from contrib/docker/shared/root/docker/install/base.sh rename to docker/shared/root/docker/install/base.sh diff --git a/contrib/docker/shared/root/docker/install/php-extensions.sh b/docker/shared/root/docker/install/php-extensions.sh similarity index 100% rename from contrib/docker/shared/root/docker/install/php-extensions.sh rename to docker/shared/root/docker/install/php-extensions.sh diff --git a/contrib/docker/shared/root/docker/templates/usr/local/etc/php/php.ini b/docker/shared/root/docker/templates/usr/local/etc/php/php.ini similarity index 100% rename from contrib/docker/shared/root/docker/templates/usr/local/etc/php/php.ini rename to docker/shared/root/docker/templates/usr/local/etc/php/php.ini