forked from glitch-soc/mastodon
-
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.
Merge branch 'mastodon.galileivr.org' of https://github.com/ciao1092/…
…mastodon.galileivr.org into mastodon.galileivr.org
- Loading branch information
Showing
1,271 changed files
with
82,759 additions
and
1,453 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 |
---|---|---|
|
@@ -16,11 +16,37 @@ | |
# ---------- | ||
LOCAL_DOMAIN=example.com | ||
|
||
# Use this only if you need to run mastodon on a different domain than the one used for federation. | ||
# You can read more about this option on https://docs.joinmastodon.org/admin/config/#web-domain | ||
# DO *NOT* USE THIS UNLESS YOU KNOW *EXACTLY* WHAT YOU ARE DOING. | ||
# WEB_DOMAIN=mastodon.example.com | ||
|
||
# Use this if you want to have several aliases [email protected] | ||
# [email protected] etc. for the same user. LOCAL_DOMAIN should not | ||
# be added. Comma separated values | ||
# ALTERNATE_DOMAINS=example1.com,example2.com | ||
|
||
# Use HTTP proxy for outgoing request (optional) | ||
# http_proxy=http://gateway.local:8118 | ||
# Access control for hidden service. | ||
# ALLOW_ACCESS_TO_HIDDEN_SERVICE=true | ||
|
||
# Authorized fetch mode (optional) | ||
# Require remote servers to authentify when fetching toots, see | ||
# https://docs.joinmastodon.org/admin/config/#authorized_fetch | ||
# AUTHORIZED_FETCH=true | ||
|
||
# Limited federation mode (optional) | ||
# Only allow federation with specific domains, see | ||
# https://docs.joinmastodon.org/admin/config/#whitelist_mode | ||
# LIMITED_FEDERATION_MODE=true | ||
|
||
# Redis | ||
# ----- | ||
REDIS_HOST=localhost | ||
REDIS_PORT=6379 | ||
|
||
|
||
# PostgreSQL | ||
# ---------- | ||
DB_HOST=/var/run/postgresql | ||
|
@@ -29,29 +55,52 @@ DB_NAME=mastodon_production | |
DB_PASS= | ||
DB_PORT=5432 | ||
|
||
|
||
# Elasticsearch (optional) | ||
# ------------------------ | ||
ES_ENABLED=true | ||
ES_HOST=localhost | ||
ES_PORT=9200 | ||
#ES_ENABLED=true | ||
#ES_HOST=localhost | ||
#ES_PORT=9200 | ||
# Authentication for ES (optional) | ||
ES_USER=elastic | ||
ES_PASS=password | ||
#ES_USER=elastic | ||
#ES_PASS=password | ||
|
||
|
||
# Secrets | ||
# ------- | ||
# Make sure to use `rake secret` to generate secrets | ||
# Generate each with the `RAILS_ENV=production bundle exec rake secret` task (`docker-compose run --rm web bundle exec rake secret` if you use docker compose) | ||
# ------- | ||
SECRET_KEY_BASE= | ||
OTP_SECRET= | ||
|
||
|
||
# Web Push | ||
# -------- | ||
# Generate with `rake mastodon:webpush:generate_vapid_key` | ||
# Generate with `rake mastodon:webpush:generate_vapid_key` (first is the private key, second is the public one) | ||
# You should only generate this once per instance. If you later decide to change it, all push subscription will | ||
# be invalidated, requiring the users to access the website again to resubscribe. | ||
# -------- | ||
VAPID_PRIVATE_KEY= | ||
VAPID_PUBLIC_KEY= | ||
|
||
|
||
# Registrations | ||
# ------------- | ||
|
||
# Single user mode will disable registrations and redirect frontpage to the first profile | ||
# SINGLE_USER_MODE=true | ||
|
||
# Prevent registrations with following e-mail domains | ||
# EMAIL_DOMAIN_DENYLIST=example1.com|example2.de|etc | ||
|
||
# Only allow registrations with the following e-mail domains | ||
# EMAIL_DOMAIN_ALLOWLIST=example1.com|example2.de|etc | ||
|
||
#TODO move this | ||
# Optionally change default language | ||
# DEFAULT_LOCALE=de | ||
|
||
|
||
# Sending mail | ||
# ------------ | ||
SMTP_SERVER= | ||
|
@@ -60,13 +109,195 @@ SMTP_LOGIN= | |
SMTP_PASSWORD= | ||
[email protected] | ||
|
||
|
||
# File storage (optional) | ||
# ----------------------- | ||
S3_ENABLED=true | ||
S3_BUCKET=files.example.com | ||
AWS_ACCESS_KEY_ID= | ||
AWS_SECRET_ACCESS_KEY= | ||
S3_ALIAS_HOST=files.example.com | ||
# The attachment host must allow cross origin request from WEB_DOMAIN or | ||
# LOCAL_DOMAIN if WEB_DOMAIN is not set. For example, the server may have the | ||
# following header field: | ||
# Access-Control-Allow-Origin: https://192.168.1.123:9000/ | ||
# ----------------------- | ||
#S3_ENABLED=true | ||
#S3_BUCKET=files.example.com | ||
#AWS_ACCESS_KEY_ID= | ||
#AWS_SECRET_ACCESS_KEY= | ||
#S3_ALIAS_HOST=files.example.com | ||
|
||
# Swift (optional) | ||
# The attachment host must allow cross origin request - see the description | ||
# above. | ||
# SWIFT_ENABLED=true | ||
# SWIFT_USERNAME= | ||
# For Keystone V3, the value for SWIFT_TENANT should be the project name | ||
# SWIFT_TENANT= | ||
# SWIFT_PASSWORD= | ||
# Some OpenStack V3 providers require PROJECT_ID (optional) | ||
# SWIFT_PROJECT_ID= | ||
# Keystone V2 and V3 URLs are supported. Use a V3 URL if possible to avoid | ||
# issues with token rate-limiting during high load. | ||
# SWIFT_AUTH_URL= | ||
# SWIFT_CONTAINER= | ||
# SWIFT_OBJECT_URL= | ||
# SWIFT_REGION= | ||
# Defaults to 'default' | ||
# SWIFT_DOMAIN_NAME= | ||
# Defaults to 60 seconds. Set to 0 to disable | ||
# SWIFT_CACHE_TTL= | ||
|
||
# Optional asset host for multi-server setups | ||
# The asset host must allow cross origin request from WEB_DOMAIN or LOCAL_DOMAIN | ||
# if WEB_DOMAIN is not set. For example, the server may have the | ||
# following header field: | ||
# Access-Control-Allow-Origin: https://example.com/ | ||
# CDN_HOST=https://assets.example.com | ||
|
||
# Optional list of hosts that are allowed to serve media for your instance | ||
# This is useful if you include external media in your custom CSS or about page, | ||
# or if your data storage provider makes use of redirects to other domains. | ||
# EXTRA_DATA_HOSTS=https://data.example1.com|https://data.example2.com | ||
|
||
# Optional alias for S3 (e.g. to serve files on a custom domain, possibly using Cloudfront or Cloudflare) | ||
# S3_ALIAS_HOST= | ||
|
||
# Streaming API integration | ||
# STREAMING_API_BASE_URL= | ||
|
||
|
||
# External authentication (optional) | ||
# ---------------------------------- | ||
# LDAP authentication (optional) | ||
# LDAP_ENABLED=true | ||
# LDAP_HOST=localhost | ||
# LDAP_PORT=389 | ||
# LDAP_METHOD=simple_tls | ||
# LDAP_BASE= | ||
# LDAP_BIND_DN= | ||
# LDAP_PASSWORD= | ||
# LDAP_UID=cn | ||
# LDAP_MAIL=mail | ||
# LDAP_SEARCH_FILTER=(|(%{uid}=%{email})(%{mail}=%{email})) | ||
# LDAP_UID_CONVERSION_ENABLED=true | ||
# LDAP_UID_CONVERSION_SEARCH=., - | ||
# LDAP_UID_CONVERSION_REPLACE=_ | ||
|
||
# PAM authentication (optional) | ||
# PAM authentication uses for the email generation the "email" pam variable | ||
# and optional as fallback PAM_DEFAULT_SUFFIX | ||
# The pam environment variable "email" is provided by: | ||
# https://github.com/devkral/pam_email_extractor | ||
# PAM_ENABLED=true | ||
# Fallback email domain for email address generation (LOCAL_DOMAIN by default) | ||
# PAM_EMAIL_DOMAIN=example.com | ||
# Name of the pam service (pam "auth" section is evaluated) | ||
# PAM_DEFAULT_SERVICE=rpam | ||
# Name of the pam service used for checking if an user can register (pam "account" section is evaluated) (nil (disabled) by default) | ||
# PAM_CONTROLLED_SERVICE=rpam | ||
|
||
# Global OAuth settings (optional) : | ||
# If you have only one strategy, you may want to enable this | ||
# OAUTH_REDIRECT_AT_SIGN_IN=true | ||
|
||
# Optional CAS authentication (cf. omniauth-cas) : | ||
# CAS_ENABLED=true | ||
# CAS_URL=https://sso.myserver.com/ | ||
# CAS_HOST=sso.myserver.com/ | ||
# CAS_PORT=443 | ||
# CAS_SSL=true | ||
# CAS_VALIDATE_URL= | ||
# CAS_CALLBACK_URL= | ||
# CAS_LOGOUT_URL= | ||
# CAS_LOGIN_URL= | ||
# CAS_UID_FIELD='user' | ||
# CAS_CA_PATH= | ||
# CAS_DISABLE_SSL_VERIFICATION=false | ||
# CAS_UID_KEY='user' | ||
# CAS_NAME_KEY='name' | ||
# CAS_EMAIL_KEY='email' | ||
# CAS_NICKNAME_KEY='nickname' | ||
# CAS_FIRST_NAME_KEY='firstname' | ||
# CAS_LAST_NAME_KEY='lastname' | ||
# CAS_LOCATION_KEY='location' | ||
# CAS_IMAGE_KEY='image' | ||
# CAS_PHONE_KEY='phone' | ||
|
||
# Optional SAML authentication (cf. omniauth-saml) | ||
# SAML_ENABLED=true | ||
# SAML_ACS_URL=http://localhost:3000/auth/auth/saml/callback | ||
# SAML_ISSUER=https://example.com | ||
# SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO | ||
# SAML_IDP_CERT= | ||
# SAML_IDP_CERT_FINGERPRINT= | ||
# SAML_NAME_IDENTIFIER_FORMAT= | ||
# SAML_CERT= | ||
# SAML_PRIVATE_KEY= | ||
# SAML_SECURITY_WANT_ASSERTION_SIGNED=true | ||
# SAML_SECURITY_WANT_ASSERTION_ENCRYPTED=true | ||
# SAML_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true | ||
# SAML_ATTRIBUTES_STATEMENTS_UID="urn:oid:0.9.2342.19200300.100.1.1" | ||
# SAML_ATTRIBUTES_STATEMENTS_EMAIL="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" | ||
# SAML_ATTRIBUTES_STATEMENTS_FULL_NAME="urn:oid:2.16.840.1.113730.3.1.241" | ||
# SAML_ATTRIBUTES_STATEMENTS_FIRST_NAME="urn:oid:2.5.4.42" | ||
# SAML_ATTRIBUTES_STATEMENTS_LAST_NAME="urn:oid:2.5.4.4" | ||
# SAML_UID_ATTRIBUTE="urn:oid:0.9.2342.19200300.100.1.1" | ||
# SAML_ATTRIBUTES_STATEMENTS_VERIFIED= | ||
# SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL= | ||
|
||
|
||
# Custom settings | ||
# --------------- | ||
# Various ways to customize Mastodon's behavior | ||
# --------------- | ||
|
||
# Maximum allowed character count | ||
MAX_TOOT_CHARS=500 | ||
|
||
# Maximum allowed hashtags to follow in a feed column | ||
# Note that setting this value higher may cause significant | ||
# database load | ||
MAX_FEED_HASHTAGS=4 | ||
|
||
# Maximum number of pinned posts | ||
MAX_PINNED_TOOTS=5 | ||
|
||
# Maximum allowed bio characters | ||
MAX_BIO_CHARS=500 | ||
|
||
# Maximim number of profile fields allowed | ||
MAX_PROFILE_FIELDS=4 | ||
|
||
# Maximum allowed display name characters | ||
MAX_DISPLAY_NAME_CHARS=30 | ||
|
||
# Maximum allowed poll options | ||
MAX_POLL_OPTIONS=5 | ||
|
||
# Maximum allowed poll option characters | ||
MAX_POLL_OPTION_CHARS=100 | ||
|
||
# Maximum image and video/audio upload sizes | ||
# Units are in bytes | ||
# 1048576 bytes equals 1 megabyte | ||
# MAX_IMAGE_SIZE=8388608 | ||
# MAX_VIDEO_SIZE=41943040 | ||
|
||
# Maximum search results to display | ||
# Only relevant when elasticsearch is installed | ||
# MAX_SEARCH_RESULTS=20 | ||
|
||
# Maximum hashtags to display | ||
# Customize the number of hashtags shown in 'Explore' | ||
# MAX_TRENDING_TAGS=10 | ||
|
||
# Maximum custom emoji file sizes | ||
# If undefined or smaller than MAX_EMOJI_SIZE, the value | ||
# of MAX_EMOJI_SIZE will be used for MAX_REMOTE_EMOJI_SIZE | ||
# Units are in bytes | ||
# MAX_EMOJI_SIZE=262144 | ||
# MAX_REMOTE_EMOJI_SIZE=262144 | ||
|
||
# Optional hCaptcha support | ||
# HCAPTCHA_SECRET_KEY= | ||
# HCAPTCHA_SITE_KEY= | ||
|
||
# IP and session retention | ||
# ----------------------- | ||
|
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
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,64 @@ | ||
name: Build nightly container image | ||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '0 2 * * *' # run at 2 AM UTC | ||
|
||
permissions: | ||
contents: read | ||
packages: write | ||
|
||
jobs: | ||
compute-suffix: | ||
runs-on: ubuntu-latest | ||
if: github.repository == 'glitch-soc/mastodon' | ||
steps: | ||
- id: version_vars | ||
env: | ||
TZ: Etc/UTC | ||
run: | | ||
echo mastodon_version_prerelease=nightly.$(date +'%Y-%m-%d')>> $GITHUB_OUTPUT | ||
outputs: | ||
prerelease: ${{ steps.version_vars.outputs.mastodon_version_prerelease }} | ||
|
||
build-image: | ||
needs: compute-suffix | ||
uses: ./.github/workflows/build-container-image.yml | ||
with: | ||
file_to_build: Dockerfile | ||
platforms: linux/amd64,linux/arm64 | ||
use_native_arm64_builder: false | ||
cache: false | ||
push_to_images: | | ||
ghcr.io/${{ github.repository_owner }}/mastodon | ||
version_prerelease: ${{ needs.compute-suffix.outputs.prerelease }} | ||
labels: | | ||
org.opencontainers.image.description=Nightly build image used for testing purposes | ||
flavor: | | ||
latest=true | ||
tags: | | ||
type=raw,value=edge | ||
type=raw,value=nightly | ||
type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }} | ||
secrets: inherit | ||
|
||
build-image-streaming: | ||
needs: compute-suffix | ||
uses: ./.github/workflows/build-container-image.yml | ||
with: | ||
file_to_build: streaming/Dockerfile | ||
platforms: linux/amd64,linux/arm64 | ||
use_native_arm64_builder: false | ||
cache: false | ||
push_to_images: | | ||
ghcr.io/${{ github.repository_owner }}/mastodon-streaming | ||
version_prerelease: ${{ needs.compute-suffix.outputs.prerelease }} | ||
labels: | | ||
org.opencontainers.image.description=Nightly build image used for testing purposes | ||
flavor: | | ||
latest=true | ||
tags: | | ||
type=raw,value=edge | ||
type=raw,value=nightly | ||
type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }} | ||
secrets: inherit |
Oops, something went wrong.