forked from pixelfed/pixelfed
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
30c611e
commit 5c65b81
Showing
11 changed files
with
2,313 additions
and
211 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
## Crypto | ||
APP_KEY= | ||
|
||
## General Settings | ||
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 | ||
#INSTANCE_DESCRIPTION= | ||
INSTANCE_PUBLIC_HASHTAGS=false | ||
#INSTANCE_CONTACT_EMAIL= | ||
INSTANCE_PUBLIC_LOCAL_TIMELINE=false | ||
#BANNED_USERNAMES= | ||
STORIES_ENABLED=false | ||
RESTRICTED_INSTANCE=false | ||
|
||
MAIL_DRIVER=log | ||
MAIL_HOST=smtp.mailtrap.io | ||
MAIL_PORT=2525 | ||
MAIL_FROM_ADDRESS="[email protected]" | ||
MAIL_FROM_NAME="Pixelfed" | ||
MAIL_USERNAME=null | ||
MAIL_PASSWORD=null | ||
MAIL_ENCRYPTION=null | ||
|
||
## Databases (MySQL) | ||
DB_CONNECTION=mysql | ||
DB_HOST=127.0.0.1 | ||
DB_PORT=3306 | ||
DB_DATABASE=pixelfed | ||
DB_USERNAME=pixelfed | ||
DB_PASSWORD=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=null | ||
REDIS_PORT=6379 | ||
REDIS_DATABASE=0 | ||
|
||
## 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_DRIVER=local | ||
FILESYSTEM_CLOUD=s3 | ||
PF_ENABLE_CLOUD=false | ||
#AWS_ACCESS_KEY_ID= | ||
#AWS_SECRET_ACCESS_KEY= | ||
#AWS_DEFAULT_REGION= | ||
#AWS_BUCKET= | ||
#AWS_URL= | ||
#AWS_ENDPOINT= | ||
#AWS_USE_PATH_STYLE_ENDPOINT=false | ||
|
||
## Horizon | ||
HORIZON_DARKMODE=false | ||
|
||
## COSTAR - Confirm Object Sentiment Transform and Reduce | ||
PF_COSTAR_ENABLED=false | ||
|
||
# Media | ||
MEDIA_EXIF_DATABASE=false | ||
|
||
## Logging | ||
LOG_CHANNEL=stack | ||
|
||
## Image | ||
IMAGE_DRIVER=imagick | ||
|
||
## Broadcasting | ||
BROADCAST_DRIVER=log # log driver for local development | ||
|
||
## Cache | ||
CACHE_DRIVER=redis | ||
|
||
## Purify | ||
RESTRICT_HTML_TYPES=true | ||
|
||
## Queue | ||
QUEUE_DRIVER=redis | ||
|
||
## Session | ||
SESSION_DRIVER=redis | ||
|
||
## Trusted Proxy | ||
TRUST_PROXIES="*" | ||
|
||
## Passport | ||
#PASSPORT_PRIVATE_KEY= | ||
#PASSPORT_PUBLIC_KEY= |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
upstream fe { | ||
server 127.0.0.1:8080; | ||
} | ||
|
||
server { | ||
server_name real.domain; | ||
listen [::]:443 ssl ipv6only=on; | ||
listen 443 ssl; | ||
ssl_certificate /etc/letsencrypt/live/real.domain/fullchain.pem; # managed by Certbot | ||
ssl_certificate_key /etc/letsencrypt/live/real.domain/privkey.pem; # managed by Certbot | ||
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot | ||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot | ||
|
||
location / { | ||
proxy_set_header Host $host; | ||
proxy_set_header X-Real-IP $remote_addr; | ||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
proxy_set_header X-Forwarded-Proto $scheme; | ||
proxy_set_header X-Forwarded-Host $http_x_forwarded_host; | ||
proxy_set_header X-Forwarded-Port $http_x_forwarded_port; | ||
proxy_redirect off; | ||
proxy_pass http://fe/; | ||
} | ||
} | ||
|
||
server { | ||
if ($host = real.domain) { | ||
return 301 https://$host$request_uri; | ||
} | ||
|
||
listen 80; | ||
listen [::]:80; | ||
server_name real.domain; | ||
return 404; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,71 +1,106 @@ | ||
FROM php:7.4-apache-buster | ||
|
||
ARG COMPOSER_VERSION="1.9.1" | ||
ARG COMPOSER_CHECKSUM="1f210b9037fcf82670d75892dfc44400f13fe9ada7af9e787f93e50e3b764111" | ||
|
||
RUN apt-get update \ | ||
&& apt-get install -y --no-install-recommends apt-utils \ | ||
&& apt-get install -y --no-install-recommends git gosu ffmpeg \ | ||
optipng pngquant jpegoptim gifsicle libpq-dev libsqlite3-dev locales zip unzip libzip-dev libcurl4-openssl-dev \ | ||
libfreetype6 libicu-dev libjpeg62-turbo libpng16-16 libxpm4 libwebp6 libmagickwand-6.q16-6 \ | ||
libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev libwebp-dev libmagickwand-dev mariadb-client\ | ||
&& sed -i '/en_US/s/^#//g' /etc/locale.gen \ | ||
&& locale-gen && update-locale \ | ||
&& docker-php-source extract \ | ||
&& docker-php-ext-configure gd \ | ||
# Use the default production configuration | ||
COPY contrib/docker/php.production.ini "$PHP_INI_DIR/php.ini" | ||
|
||
# Install Composer | ||
ENV COMPOSER_VERSION 1.9.2 | ||
ENV COMPOSER_HOME /var/www/.composer | ||
RUN curl -o /tmp/composer-setup.php https://getcomposer.org/installer \ | ||
&& curl -o /tmp/composer-setup.sig https://composer.github.io/installer.sig \ | ||
&& php -r "if (hash('SHA384', file_get_contents('/tmp/composer-setup.php')) !== trim(file_get_contents('/tmp/composer-setup.sig'))) { unlink('/tmp/composer-setup.php'); echo 'Invalid installer' . PHP_EOL; exit(1); }" \ | ||
&& php /tmp/composer-setup.php --no-ansi --install-dir=/usr/local/bin --filename=composer --version=${COMPOSER_VERSION} && rm -rf /tmp/composer-setup.php | ||
|
||
# Update OS Packages | ||
RUN apt-get update | ||
|
||
# Install OS Packages | ||
RUN apt-get install -y --no-install-recommends apt-utils | ||
RUN apt-get install -y --no-install-recommends \ | ||
## Standard | ||
locales locales-all \ | ||
git \ | ||
gosu \ | ||
zip \ | ||
unzip \ | ||
libzip-dev \ | ||
libcurl4-openssl-dev \ | ||
## Image Optimization | ||
optipng \ | ||
pngquant \ | ||
jpegoptim \ | ||
gifsicle \ | ||
## Image Processing | ||
libjpeg62-turbo-dev \ | ||
libpng-dev \ | ||
# Required for GD | ||
libxpm4 \ | ||
libxpm-dev \ | ||
libwebp6 \ | ||
libwebp-dev \ | ||
## Video Processing | ||
ffmpeg | ||
|
||
# Update Local data | ||
RUN sed -i '/en_US/s/^#//g' /etc/locale.gen && locale-gen && update-locale | ||
|
||
# Install PHP extensions | ||
RUN docker-php-source extract | ||
|
||
#PHP Imagemagick extensions | ||
RUN apt-get install -y --no-install-recommends libmagickwand-dev | ||
RUN pecl install imagick | ||
RUN docker-php-ext-enable imagick | ||
|
||
# PHP GD extensions | ||
RUN docker-php-ext-configure gd \ | ||
--with-freetype \ | ||
--with-jpeg \ | ||
--with-webp \ | ||
--with-xpm \ | ||
&& docker-php-ext-install pdo_mysql pdo_pgsql pdo_sqlite pcntl gd exif bcmath intl zip curl \ | ||
&& docker-php-ext-enable pcntl gd exif zip curl \ | ||
&& a2enmod rewrite remoteip \ | ||
--with-xpm | ||
RUN docker-php-ext-install "-j$(nproc) gd" | ||
|
||
#PHP Redis extensions | ||
RUN pecl install redis | ||
RUN docker-php-ext-enable redis | ||
|
||
#PHP Database extensions | ||
RUN apt-get install -y --no-install-recommends libpq-dev libsqlite3-dev | ||
RUN docker-php-ext-install pdo_mysql pdo_pgsql pdo_sqlite | ||
|
||
#PHP extensions (dependencies) | ||
RUN docker-php-ext-configure intl | ||
RUN docker-php-ext-install "-j$(nproc) intl bcmath zip pcntl exif curl" | ||
|
||
#APACHE Bootstrap | ||
RUN a2enmod rewrite remoteip \ | ||
&& {\ | ||
echo RemoteIPHeader X-Real-IP ;\ | ||
echo RemoteIPTrustedProxy 10.0.0.0/8 ;\ | ||
echo RemoteIPTrustedProxy 172.16.0.0/12 ;\ | ||
echo RemoteIPTrustedProxy 192.168.0.0/16 ;\ | ||
echo SetEnvIf X-Forwarded-Proto "https" HTTPS=on ;\ | ||
} > /etc/apache2/conf-available/remoteip.conf \ | ||
&& a2enconf remoteip \ | ||
&& curl -LsS https://getcomposer.org/download/${COMPOSER_VERSION}/composer.phar -o /usr/bin/composer \ | ||
&& echo "${COMPOSER_CHECKSUM} /usr/bin/composer" | sha256sum -c - \ | ||
&& chmod 755 /usr/bin/composer \ | ||
&& apt-get autoremove --purge -y \ | ||
libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev libvpx-dev libmagickwand-dev \ | ||
&& rm -rf /var/cache/apt \ | ||
&& docker-php-source delete | ||
&& a2enconf remoteip | ||
|
||
#Cleanup | ||
RUN docker-php-source delete | ||
RUN apt-get autoremove --purge -y | ||
RUN apt-get clean | ||
RUN rm -rf /var/cache/apt | ||
RUN rm -rf /var/lib/apt/lists/* | ||
|
||
ENV PATH="~/.composer/vendor/bin:./vendor/bin:${PATH}" | ||
|
||
COPY . /var/www/ | ||
|
||
WORKDIR /var/www/ | ||
RUN cp -r storage storage.skel \ | ||
&& cp contrib/docker/php.ini /usr/local/etc/php/conf.d/pixelfed.ini \ | ||
&& composer global require hirak/prestissimo --no-interaction --no-suggest --prefer-dist \ | ||
&& composer install --prefer-dist --no-interaction \ | ||
&& composer global remove hirak/prestissimo \ | ||
&& rm -rf html && ln -s public html | ||
|
||
RUN cp -r storage storage.skel | ||
RUN composer global require hirak/prestissimo --no-interaction --no-suggest --prefer-dist | ||
RUN composer install --prefer-dist --no-interaction --no-ansi --optimize-autoloader | ||
RUN composer global remove hirak/prestissimo | ||
RUN rm -rf html && ln -s public html | ||
|
||
VOLUME /var/www/storage /var/www/bootstrap | ||
|
||
ENV APP_ENV=production \ | ||
APP_DEBUG=false \ | ||
LOG_CHANNEL=stderr \ | ||
DB_CONNECTION=mysql \ | ||
DB_PORT=3306 \ | ||
DB_HOST=db \ | ||
BROADCAST_DRIVER=log \ | ||
QUEUE_DRIVER=redis \ | ||
HORIZON_PREFIX=horizon-pixelfed \ | ||
REDIS_HOST=redis \ | ||
SESSION_SECURE_COOKIE=true \ | ||
API_BASE="/api/1/" \ | ||
API_SEARCH="/api/search" \ | ||
OPEN_REGISTRATION=true \ | ||
ENFORCE_EMAIL_VERIFICATION=true \ | ||
REMOTE_FOLLOW=false \ | ||
ACTIVITY_PUB=false | ||
|
||
CMD /var/www/contrib/docker/start.sh | ||
CMD ["/var/www/contrib/docker/start.apache.sh"] |
Oops, something went wrong.