From 34ab4a2a69337f9687a1a602242f82a04c1e257e Mon Sep 17 00:00:00 2001 From: DrMxrcy <58747968+DrMxrcy@users.noreply.github.com> Date: Tue, 23 May 2023 16:07:33 -0400 Subject: [PATCH] Add Mastodon (#538) * Add Mastodon * Add Vapid Keys and Fix Internal Network * Update Sidekiq * Update Install * Update Install CMDs * Trying the LinuxServer Image * Update port * Change Path * Remove Streaming * traefik updates * Remove Command * Update docker-compose.yml * Update docker-compose.yml * Change Traefik * Update * Update config.json * Update Configs * Add Version Warning * Update Local Domain * Update Version * Add ES * Test ES * Update Path * Remove ES, Revert Final Build --- apps/mastodon/config.json | 94 +++++++++++++++++++++++++ apps/mastodon/docker-compose.yml | 96 ++++++++++++++++++++++++++ apps/mastodon/metadata/description.md | 46 ++++++++++++ apps/mastodon/metadata/logo.jpg | Bin 0 -> 62880 bytes 4 files changed, 236 insertions(+) create mode 100644 apps/mastodon/config.json create mode 100644 apps/mastodon/docker-compose.yml create mode 100644 apps/mastodon/metadata/description.md create mode 100644 apps/mastodon/metadata/logo.jpg diff --git a/apps/mastodon/config.json b/apps/mastodon/config.json new file mode 100644 index 00000000..1bf2f8dc --- /dev/null +++ b/apps/mastodon/config.json @@ -0,0 +1,94 @@ +{ + "$schema": "../schema.json", + "name": "Mastodon", + "port": 8210, + "available": true, + "exposable": true, + "force_expose": true, + "generate_vapid_keys": true, + "id": "mastodon", + "tipi_version": 1, + "version": "4.1.2", + "categories": ["social"], + "description": "Your self-hosted, globally interconnected microblogging community", + "short_desc": "Your self-hosted, globally interconnected microblogging community", + "author": "Mastodon", + "source": "https://github.com/mastodon/mastodon", + "form_fields": [ + { + "type": "random", + "label": "Mastodon Redis Password", + "min": 32, + "max": 32, + "env_variable": "MASTODON_REDIS_PASSWORD" + }, + { + "type": "random", + "label": "Mastodon Postgres Password", + "min": 32, + "max": 32, + "env_variable": "MASTODON_POSTGRES_PASSWORD" + }, + { + "type": "random", + "label": "Mastodon Secret Key Base", + "min": 64, + "max": 64, + "env_variable": "MASTODON_SECRET_KEY_BASE" + }, + { + "type": "random", + "label": "Mastodon OTP Secret", + "min": 64, + "max": 64, + "env_variable": "MASTODON_OTP_SECRET" + }, + { + "type": "text", + "label": "SMTP Host", + "hint": "Your SMTP Server", + "placeholder": "smtp.example.com", + "required": true, + "env_variable": "MASTODON_SMTP_SERVER" + }, + { + "type": "text", + "label": "SMTP Port", + "hint": "Your SMTP Port", + "placeholder": "25", + "required": true, + "env_variable": "MASTODON_SMTP_PORT" + }, + { + "type": "text", + "label": "SMTP Username", + "hint": "Your SMTP Server User/Username", + "placeholder": "noreply@example.com", + "required": true, + "env_variable": "MASTODON_SMTP_LOGIN" + }, + { + "type": "text", + "label": "SMTP Password", + "hint": "Your SMTP Server Password", + "required": true, + "env_variable": "MASTODON_SMTP_PASSWORD" + }, + { + "type": "text", + "label": "SMTP From Address", + "hint": "Make sure the Format is like noreply@example.com", + "placeholder": "noreply@example.com", + "required": true, + "env_variable": "MASTODON_SMTP_FROM_ADDRESS" + }, + { + "type": "text", + "label": "Mastodon Local domain", + "hint": "Could be the same of the Exposed Domain. Ex: social.example.com", + "placeholder": "example.com", + "required": true, + "env_variable": "MASTODON_LOCAL_DOMAIN" + } + ] +} diff --git a/apps/mastodon/docker-compose.yml b/apps/mastodon/docker-compose.yml new file mode 100644 index 00000000..d2006e38 --- /dev/null +++ b/apps/mastodon/docker-compose.yml @@ -0,0 +1,96 @@ +version: "3" + +services: + mastodon: + container_name: mastodon + image: lscr.io/linuxserver/mastodon:4.1.2 + ports: + - 8209:80 + - ${APP_PORT}:443 + volumes: + - ${APP_DATA_DIR}/data/mastodon-config:/config + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + - LOCAL_DOMAIN=${MASTODON_LOCAL_DOMAIN} + - WEB_DOMAIN=${APP_DOMAIN} + - VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} + - VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} + - REDIS_HOST=mastodon-redis + - REDIS_PASSWORD=${MASTODON_REDIS_PASSWORD} + - REDIS_PORT=6379 + - DB_HOST=mastodon-db + - DB_USER=tipi + - DB_NAME=mastodon + - DB_PASS=${MASTODON_POSTGRES_PASSWORD} + - DB_PORT=5432 + - ES_ENABLED=false + #- ES_HOST=mastodon-es + #- ES_PORT=9200 + #- ES_USER=elastic + #- ES_PASS=${MASTODON_ELASTIC_PASSWORD} + - SECRET_KEY_BASE=${MASTODON_SECRET_KEY_BASE} + - OTP_SECRET=${MASTODON_OTP_SECRET} + - SMTP_SERVER=${MASTODON_SMTP_SERVER} + - SMTP_PORT=${MASTODON_SMTP_PORT} + - SMTP_LOGIN=${MASTODON_SMTP_LOGIN} + - SMTP_PASSWORD=${MASTODON_SMTP_PASSWORD} + - SMTP_FROM_ADDRESS=${MASTODON_SMTP_FROM_ADDRESS} + - S3_ENABLED=false + #- S3_BUCKET=files.example.com + # - AWS_ACCESS_KEY_ID= + #- AWS_SECRET_ACCESS_KEY= + #- S3_ALIAS_HOST=files.example.com + - SIDEKIQ_ONLY=false + - SIDEKIQ_DEFAULT=false + - SIDEKIQ_THREADS=5 + + restart: unless-stopped + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.mastodon.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.mastodon.entrypoints: websecure + traefik.http.routers.mastodon.service: mastodon + traefik.http.routers.mastodon.tls.certresolver: myresolver + traefik.http.services.mastodon.loadbalancer.server.port: 443 + traefik.http.services.mastodon.loadbalancer.serverstransport: insecuretransport@file + traefik.http.services.mastodon.loadbalancer.server.scheme: https + depends_on: + mastodon-db: + condition: service_healthy + mastodon-redis: + condition: service_healthy + + + mastodon-db: + restart: always + container_name: mastodon-db + image: postgres:14-alpine + shm_size: 256mb + environment: + POSTGRES_PASSWORD: ${MASTODON_POSTGRES_PASSWORD} + POSTGRES_USER: tipi + POSTGRES_DB: mastodon + PG_DATA: /var/lib/postgresql/data + POSTGRES_HOST_AUTH_METHODL: trust + networks: + - tipi_main_network + healthcheck: + test: ['CMD', 'pg_isready', '-U', 'postgres'] + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + + mastodon-redis: + restart: always + image: redis:7-alpine + command: redis-server --appendonly yes --replica-read-only no --requirepass "${MASTODON_REDIS_PASSWORD}" + container_name: mastodon-redis + networks: + - tipi_main_network + healthcheck: + test: ['CMD', 'redis-cli', 'ping'] + volumes: + - ${APP_DATA_DIR}/data/redis:/data \ No newline at end of file diff --git a/apps/mastodon/metadata/description.md b/apps/mastodon/metadata/description.md new file mode 100644 index 00000000..370b0aa8 --- /dev/null +++ b/apps/mastodon/metadata/description.md @@ -0,0 +1,46 @@ +## Installation Notice + +- *Mastodon is a heavy app, and may take a bit longer to fully start up.* +- Must be on Tipi Version **1.4.0** for the expose app to work! + +#### Local Domain Varibale +- The local domain variable ca be the same as the exposed domain (Ex: social.example.com). But you could have the exposed domain as social.example.com and the username url as example.com. + +## Initial User Setup +1. SSH into your Tipi Server +2. Fill in your credentials (some_username,someone@example.org, some_very_good_password), then run the command: + ``` + sudo docker exec -it -w /app/www mastodon bin/tootctl accounts create some_username --email someone@example.org --confirmed --role Owner + ``` + + +--- +Mastodon is a **free, open-source social network server** based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, video. All Mastodon servers are interoperable as a federated network (users on one server can seamlessly communicate with users from another one, including non-Mastodon software that implements ActivityPub!) + +Click below to **learn more** in a video: + + [![Screenshot](https://camo.githubusercontent.com/d34a13f7f5e15d1ae46d5920f85973f19e1238adae8cbba5989e71b273179f37/68747470733a2f2f626c6f672e6a6f696e6d6173746f646f6e2e6f72672f323031382f30362f7768792d61637469766974797075622d69732d7468652d6675747572652f657a6769662d322d363066316230303430332e676966)](https://www.youtube.com/watch?v=IPSbNdBmWKE) [![Screenshot](https://camo.githubusercontent.com/d34a13f7f5e15d1ae46d5920f85973f19e1238adae8cbba5989e71b273179f37/68747470733a2f2f626c6f672e6a6f696e6d6173746f646f6e2e6f72672f323031382f30362f7768792d61637469766974797075622d69732d7468652d6675747572652f657a6769662d322d363066316230303430332e676966)](https://www.youtube.com/watch?v=IPSbNdBmWKE)[](https://www.youtube.com/watch?v=IPSbNdBmWKE) + +## Features + +[![](https://github.com/mastodon/mastodon/raw/main/app/javascript/images/elephant_ui_working.svg?raw=true)](https://github.com/mastodon/mastodon/blob/main/app/javascript/images/elephant_ui_working.svg?raw=true) + +### No vendor lock-in: Fully interoperable with any conforming platform + +It doesn't have to be Mastodon; whatever implements ActivityPub is part of the social network! [Learn more](https://blog.joinmastodon.org/2018/06/why-activitypub-is-the-future/) + +### Real-time, chronological timeline updates + +Updates of people you're following appear in real-time in the UI via WebSockets. There's a firehose view as well! + +### Media attachments like images and short videos + +Upload and view images and WebM/MP4 videos attached to the updates. Videos with no audio track are treated like GIFs; normal videos loop continuously! + +### Safety and moderation tools + +Mastodon includes private posts, locked accounts, phrase filtering, muting, blocking and all sorts of other features, along with a reporting and moderation system. [Learn more](https://blog.joinmastodon.org/2018/07/cage-the-mastodon/) + +### OAuth2 and a straightforward REST API + +Mastodon acts as an OAuth2 provider, so 3rd party apps can use the REST and Streaming APIs. This results in a rich app ecosystem with a lot of choices! \ No newline at end of file diff --git a/apps/mastodon/metadata/logo.jpg b/apps/mastodon/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..81773f97d73ab7a1d6c89b78c9f2dd7f2a01a458 GIT binary patch literal 62880 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%0AMt}Zal!#{=6^B= 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 literal 0 HcmV?d00001