mirror of
https://github.com/QYG2297248353/appstore-1panel.git
synced 2026-06-16 01:02:14 +08:00
Processed apps directory via GitHub Actions
This commit is contained in:
+1
-1
@@ -11,7 +11,7 @@ services:
|
|||||||
- PORT=7789
|
- PORT=7789
|
||||||
- CONFIG=/config
|
- CONFIG=/config
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
image: wushuo894/ani-rss:v1.1.318
|
image: wushuo894/ani-rss:v1.1.319
|
||||||
labels:
|
labels:
|
||||||
createdBy: Apps
|
createdBy: Apps
|
||||||
networks:
|
networks:
|
||||||
+1
-1
@@ -7,7 +7,7 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- ./envs/global.env
|
- ./envs/global.env
|
||||||
- .env
|
- .env
|
||||||
image: envyafish/byte-muse:1.7.4
|
image: envyafish/byte-muse:1.7.5
|
||||||
labels:
|
labels:
|
||||||
createdBy: Apps
|
createdBy: Apps
|
||||||
networks:
|
networks:
|
||||||
+1
-1
@@ -7,7 +7,7 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- ./envs/global.env
|
- ./envs/global.env
|
||||||
- .env
|
- .env
|
||||||
image: usual2970/certimate:0.3.3
|
image: usual2970/certimate:v0.3.4
|
||||||
labels:
|
labels:
|
||||||
createdBy: Apps
|
createdBy: Apps
|
||||||
networks:
|
networks:
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
# Postgres 服务 (前置检查) [必填]
|
||||||
|
PANEL_POSTGRES_TYPE=postgresql
|
||||||
|
|
||||||
|
# Redis 服务 (前置检查) [必填]
|
||||||
|
PANEL_REDIS_TYPE=redis
|
||||||
|
|
||||||
|
# 数据持久化路径 [必填]
|
||||||
|
MASTODON_ROOT_PATH=/home/mastodon
|
||||||
|
|
||||||
|
# WebUI 端口 [必填]
|
||||||
|
PANEL_APP_PORT_HTTP=3000
|
||||||
|
|
||||||
|
# Stream 端口 [必填]
|
||||||
|
PANEL_APP_PORT_STREAM=4000
|
||||||
|
|
||||||
|
# 数据库加密密钥 [必填]
|
||||||
|
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=
|
||||||
|
|
||||||
|
# 数据库加密盐 [必填]
|
||||||
|
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=
|
||||||
|
|
||||||
|
# 数据库加密主键 [必填]
|
||||||
|
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=
|
||||||
|
|
||||||
|
# 密钥 [必填]
|
||||||
|
SECRET_KEY_BASE=
|
||||||
|
|
||||||
|
# OTP 密钥 [必填]
|
||||||
|
OTP_SECRET=
|
||||||
|
|
||||||
|
# 数据库 主机地址 [必填]
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
|
||||||
|
# 数据库 端口 [必填]
|
||||||
|
DB_PORT=5432
|
||||||
|
|
||||||
|
# 数据库 名称 [必填]
|
||||||
|
DB_NAME=mastodon
|
||||||
|
|
||||||
|
# 数据库 用户名 [必填]
|
||||||
|
DB_USER=mastodon
|
||||||
|
|
||||||
|
# 数据库 密码 [必填]
|
||||||
|
DB_PASS=
|
||||||
|
|
||||||
|
# Redis 主机 [必填]
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
|
||||||
|
# Redis 端口 [必填]
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
# Redis 索引 (0-20) [必填]
|
||||||
|
REDIS_DB=0
|
||||||
|
|
||||||
|
# Redis 用户名
|
||||||
|
REDIS_USERNAME=
|
||||||
|
|
||||||
|
# Redis 密码
|
||||||
|
REDIS_PASSWORD=
|
||||||
|
|
||||||
|
# ES数据库 主机地址
|
||||||
|
ES_HOST=127.0.0.1
|
||||||
|
|
||||||
|
# ES数据库 端口
|
||||||
|
ES_PORT=9200
|
||||||
|
|
||||||
|
# ES数据库 用户名
|
||||||
|
ES_USER=elastic
|
||||||
|
|
||||||
|
# ES数据库 密码
|
||||||
|
ES_PASS=
|
||||||
|
|
||||||
@@ -0,0 +1,194 @@
|
|||||||
|
additionalProperties:
|
||||||
|
formFields:
|
||||||
|
- child:
|
||||||
|
default: ""
|
||||||
|
envKey: PANEL_POSTGRES_SERVICE
|
||||||
|
required: true
|
||||||
|
type: service
|
||||||
|
default: postgresql
|
||||||
|
envKey: PANEL_POSTGRES_TYPE
|
||||||
|
labelZh: Postgres 服务 (前置检查)
|
||||||
|
labelEn: Postgres Service (Pre-check)
|
||||||
|
required: true
|
||||||
|
type: apps
|
||||||
|
values:
|
||||||
|
- label: PostgreSQL
|
||||||
|
value: postgresql
|
||||||
|
- child:
|
||||||
|
default: ""
|
||||||
|
envKey: PANEL_REDIS_SERVICE
|
||||||
|
required: true
|
||||||
|
type: service
|
||||||
|
default: redis
|
||||||
|
envKey: PANEL_REDIS_TYPE
|
||||||
|
labelZh: Redis 服务 (前置检查)
|
||||||
|
labelEn: Redis Service (Pre-check)
|
||||||
|
required: true
|
||||||
|
type: apps
|
||||||
|
values:
|
||||||
|
- label: Redis
|
||||||
|
value: redis
|
||||||
|
- default: "/home/mastodon"
|
||||||
|
edit: true
|
||||||
|
envKey: MASTODON_ROOT_PATH
|
||||||
|
labelZh: 数据持久化路径
|
||||||
|
labelEn: Data persistence path
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: 3000
|
||||||
|
edit: true
|
||||||
|
envKey: PANEL_APP_PORT_HTTP
|
||||||
|
labelZh: WebUI 端口
|
||||||
|
labelEn: WebUI port
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: 4000
|
||||||
|
edit: true
|
||||||
|
envKey: PANEL_APP_PORT_STREAM
|
||||||
|
labelZh: Stream 端口
|
||||||
|
labelEn: Stream port
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY
|
||||||
|
labelZh: 数据库加密密钥
|
||||||
|
labelEn: Database encryption key
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT
|
||||||
|
labelZh: 数据库加密盐
|
||||||
|
labelEn: Database encryption salt
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY
|
||||||
|
labelZh: 数据库加密主键
|
||||||
|
labelEn: Database encryption primary key
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: SECRET_KEY_BASE
|
||||||
|
labelZh: 密钥
|
||||||
|
labelEn: Secret key
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: OTP_SECRET
|
||||||
|
labelZh: OTP 密钥
|
||||||
|
labelEn: OTP secret
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: "127.0.0.1"
|
||||||
|
edit: true
|
||||||
|
envKey: DB_HOST
|
||||||
|
labelZh: 数据库 主机地址
|
||||||
|
labelEn: Database Host
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: 5432
|
||||||
|
edit: true
|
||||||
|
envKey: DB_PORT
|
||||||
|
labelZh: 数据库 端口
|
||||||
|
labelEn: Database Port
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: "mastodon"
|
||||||
|
edit: true
|
||||||
|
envKey: DB_NAME
|
||||||
|
labelZh: 数据库 名称
|
||||||
|
labelEn: Database Name
|
||||||
|
required: true
|
||||||
|
rule: paramCommon
|
||||||
|
type: text
|
||||||
|
- default: "mastodon"
|
||||||
|
edit: true
|
||||||
|
envKey: DB_USER
|
||||||
|
labelZh: 数据库 用户名
|
||||||
|
labelEn: Database Username
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: DB_PASS
|
||||||
|
labelZh: 数据库 密码
|
||||||
|
labelEn: Database Password
|
||||||
|
random: true
|
||||||
|
required: true
|
||||||
|
rule: paramComplexity
|
||||||
|
type: password
|
||||||
|
- default: "127.0.0.1"
|
||||||
|
edit: true
|
||||||
|
envKey: REDIS_HOST
|
||||||
|
labelZh: Redis 主机
|
||||||
|
labelEn: Redis Host
|
||||||
|
required: true
|
||||||
|
type: text
|
||||||
|
- default: 6379
|
||||||
|
edit: true
|
||||||
|
envKey: REDIS_PORT
|
||||||
|
labelZh: Redis 端口
|
||||||
|
labelEn: Redis Port
|
||||||
|
required: true
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: 0
|
||||||
|
edit: true
|
||||||
|
envKey: REDIS_DB
|
||||||
|
labelZh: Redis 索引 (0-20)
|
||||||
|
labelEn: Redis Index (0-20)
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: REDIS_USERNAME
|
||||||
|
labelZh: Redis 用户名
|
||||||
|
labelEn: Redis UserName
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: REDIS_PASSWORD
|
||||||
|
labelZh: Redis 密码
|
||||||
|
labelEn: Redis Password
|
||||||
|
required: false
|
||||||
|
type: password
|
||||||
|
- default: "127.0.0.1"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_HOST
|
||||||
|
labelZh: ES数据库 主机地址
|
||||||
|
labelEn: Database Host
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: 9200
|
||||||
|
edit: true
|
||||||
|
envKey: ES_PORT
|
||||||
|
labelZh: ES数据库 端口
|
||||||
|
labelEn: Database Port
|
||||||
|
required: false
|
||||||
|
rule: paramPort
|
||||||
|
type: number
|
||||||
|
- default: "elastic"
|
||||||
|
edit: true
|
||||||
|
envKey: ES_USER
|
||||||
|
labelZh: ES数据库 用户名
|
||||||
|
labelEn: Database Username
|
||||||
|
required: false
|
||||||
|
type: text
|
||||||
|
- default: ""
|
||||||
|
edit: true
|
||||||
|
envKey: ES_PASS
|
||||||
|
labelZh: ES数据库 密码
|
||||||
|
labelEn: Database Password
|
||||||
|
random: true
|
||||||
|
required: false
|
||||||
|
rule: paramComplexity
|
||||||
|
type: password
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
networks:
|
||||||
|
1panel-network:
|
||||||
|
external: true
|
||||||
|
services:
|
||||||
|
mastodon:
|
||||||
|
command: bundle exec puma -C config/puma.rb
|
||||||
|
container_name: mastodon
|
||||||
|
env_file:
|
||||||
|
- ./envs/global.env
|
||||||
|
- ./envs/mastodon.env
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
image: ghcr.io/mastodon/mastodon:v4.3.6
|
||||||
|
labels:
|
||||||
|
createdBy: Apps
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
ports:
|
||||||
|
- ${PANEL_APP_PORT_HTTP}:3000
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ${MASTODON_ROOT_PATH}/system:/mastodon/public/system
|
||||||
|
sidekiq-mastodon:
|
||||||
|
command: bundle exec sidekiq
|
||||||
|
container_name: sidekiq-mastodon
|
||||||
|
env_file:
|
||||||
|
- ./envs/global.env
|
||||||
|
- ./envs/mastodon.env
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
image: ghcr.io/mastodon/mastodon:v4.3.6
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ${MASTODON_ROOT_PATH}/system:/mastodon/public/system
|
||||||
|
streaming-mastodon:
|
||||||
|
command: node ./streaming/index.js
|
||||||
|
container_name: streaming-mastodon
|
||||||
|
env_file:
|
||||||
|
- ./envs/global.env
|
||||||
|
- ./envs/mastodon.env
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
image: ghcr.io/mastodon/mastodon-streaming:v4.3.6
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
ports:
|
||||||
|
- ${PANEL_APP_PORT_STREAM}:4000
|
||||||
|
restart: always
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# copyright© 2024 XinJiang Ms Studio
|
||||||
|
ENV_FILE=.env
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# copyright© 2024 XinJiang Ms Studio
|
||||||
|
TZ=Asia/Shanghai
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
# This is a sample configuration file. You can generate your configuration
|
||||||
|
# with the `bundle exec rails mastodon:setup` interactive setup wizard, but to customize
|
||||||
|
# your setup even further, you'll need to edit it manually. This sample does
|
||||||
|
# not demonstrate all available configuration options. Please look at
|
||||||
|
# https://docs.joinmastodon.org/admin/config/ for the full documentation.
|
||||||
|
|
||||||
|
# Note that this file accepts slightly different syntax depending on whether
|
||||||
|
# you are using `docker-compose` or not. In particular, if you use
|
||||||
|
# `docker-compose`, the value of each declared variable will be taken verbatim,
|
||||||
|
# including surrounding quotes.
|
||||||
|
# See: https://github.com/mastodon/mastodon/issues/16895
|
||||||
|
|
||||||
|
# Federation
|
||||||
|
# ----------
|
||||||
|
# This identifies your server and cannot be changed safely later
|
||||||
|
# ----------
|
||||||
|
LOCAL_DOMAIN=example.com
|
||||||
|
|
||||||
|
# Redis
|
||||||
|
# -----
|
||||||
|
REDIS_HOST=localhost
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
# PostgreSQL
|
||||||
|
# ----------
|
||||||
|
DB_HOST=/var/run/postgresql
|
||||||
|
DB_USER=mastodon
|
||||||
|
DB_NAME=mastodon_production
|
||||||
|
DB_PASS=
|
||||||
|
DB_PORT=5432
|
||||||
|
|
||||||
|
# Elasticsearch (optional)
|
||||||
|
# ------------------------
|
||||||
|
ES_ENABLED=true
|
||||||
|
ES_HOST=localhost
|
||||||
|
ES_PORT=9200
|
||||||
|
# Authentication for ES (optional)
|
||||||
|
ES_USER=elastic
|
||||||
|
ES_PASS=password
|
||||||
|
|
||||||
|
# Secrets
|
||||||
|
# -------
|
||||||
|
# Make sure to use `bundle exec rails secret` to generate secrets
|
||||||
|
# -------
|
||||||
|
SECRET_KEY_BASE=
|
||||||
|
OTP_SECRET=
|
||||||
|
|
||||||
|
# Encryption secrets
|
||||||
|
# ------------------
|
||||||
|
# Must be available (and set to same values) for all server processes
|
||||||
|
# These are private/secret values, do not share outside hosting environment
|
||||||
|
# Use `bin/rails db:encryption:init` to generate fresh secrets
|
||||||
|
# Do NOT change these secrets once in use, as this would cause data loss and other issues
|
||||||
|
# ------------------
|
||||||
|
# ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=
|
||||||
|
# ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=
|
||||||
|
# ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=
|
||||||
|
|
||||||
|
# Web Push
|
||||||
|
# --------
|
||||||
|
# Generate with `bundle exec rails mastodon:webpush:generate_vapid_key`
|
||||||
|
# --------
|
||||||
|
VAPID_PRIVATE_KEY=
|
||||||
|
VAPID_PUBLIC_KEY=
|
||||||
|
|
||||||
|
# Sending mail
|
||||||
|
# ------------
|
||||||
|
SMTP_SERVER=
|
||||||
|
SMTP_PORT=587
|
||||||
|
SMTP_LOGIN=
|
||||||
|
SMTP_PASSWORD=
|
||||||
|
SMTP_FROM_ADDRESS=notifications@example.com
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# IP and session retention
|
||||||
|
# -----------------------
|
||||||
|
# Make sure to modify the scheduling of ip_cleanup_scheduler in config/sidekiq.yml
|
||||||
|
# to be less than daily if you lower IP_RETENTION_PERIOD below two days (172800).
|
||||||
|
# -----------------------
|
||||||
|
IP_RETENTION_PERIOD=31556952
|
||||||
|
SESSION_RETENTION_PERIOD=31556952
|
||||||
|
|
||||||
|
# Fetch All Replies Behavior
|
||||||
|
# --------------------------
|
||||||
|
# When a user expands a post (DetailedStatus view), fetch all of its replies
|
||||||
|
# (default: false)
|
||||||
|
FETCH_REPLIES_ENABLED=false
|
||||||
|
|
||||||
|
# Period to wait between fetching replies (in minutes)
|
||||||
|
FETCH_REPLIES_COOLDOWN_MINUTES=15
|
||||||
|
|
||||||
|
# Period to wait after a post is first created before fetching its replies (in minutes)
|
||||||
|
FETCH_REPLIES_INITIAL_WAIT_MINUTES=5
|
||||||
|
|
||||||
|
# Max number of replies to fetch - total, recursively through a whole reply tree
|
||||||
|
FETCH_REPLIES_MAX_GLOBAL=1000
|
||||||
|
|
||||||
|
# Max number of replies to fetch - for a single post
|
||||||
|
FETCH_REPLIES_MAX_SINGLE=500
|
||||||
|
|
||||||
|
# Max number of replies Collection pages to fetch - total
|
||||||
|
FETCH_REPLIES_MAX_PAGES=500
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -f .env ]; then
|
||||||
|
source .env
|
||||||
|
|
||||||
|
# setup-1 add default values
|
||||||
|
CURRENT_DIR=$(pwd)
|
||||||
|
sed -i '/^ENV_FILE=/d' .env
|
||||||
|
sed -i '/^GLOBAL_ENV_FILE=/d' .env
|
||||||
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
|
||||||
|
echo "APP_ENV_FILE=${CURRENT_DIR}/envs/mastodon.env" >> .env
|
||||||
|
|
||||||
|
# setup-2 add update permission
|
||||||
|
chown -R 991:991 "$MASTODON_ROOT_PATH"
|
||||||
|
|
||||||
|
echo "Check Finish."
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Error: .env file not found."
|
||||||
|
fi
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -f .env ]; then
|
||||||
|
source .env
|
||||||
|
|
||||||
|
echo "Check Finish."
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Error: .env file not found."
|
||||||
|
fi
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -f .env ]; then
|
||||||
|
source .env
|
||||||
|
|
||||||
|
# setup-1 add default values
|
||||||
|
CURRENT_DIR=$(pwd)
|
||||||
|
sed -i '/^ENV_FILE=/d' .env
|
||||||
|
sed -i '/^GLOBAL_ENV_FILE=/d' .env
|
||||||
|
echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env
|
||||||
|
echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env
|
||||||
|
echo "APP_ENV_FILE=${CURRENT_DIR}/envs/mastodon.env" >> .env
|
||||||
|
|
||||||
|
# setup-2 add update permission
|
||||||
|
chown -R 991:991 "$MASTODON_ROOT_PATH"
|
||||||
|
|
||||||
|
echo "Check Finish."
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Error: .env file not found."
|
||||||
|
fi
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
# Mastodon (长毛象)
|
||||||
|
|
||||||
|
自由开源的去中心化的分布式微博客社交网络
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 简介
|
||||||
|
|
||||||
|
Mastodon 是一款基于 ActivityPub 的免费开源社交网络服务器,用户可以关注好友并发现新朋友。在 Mastodon
|
||||||
|
上,用户可以发布任何他们想要的内容:链接、图片、文本和视频。所有 Mastodon 服务器都可以作为联合网络互操作(一台服务器上的用户可以与另一台服务器上的用户无缝通信,包括实现
|
||||||
|
ActivityPub 的非 Mastodon 软件!)
|
||||||
|
|
||||||
|
## 特征
|
||||||
|
|
||||||
|
### 不受供应商限制
|
||||||
|
|
||||||
|
可与任何符合要求的平台完全互操作- 不一定是 Mastodon;无论实现 ActivityPub 的是什么,都是社交网络的一部分!了解更多
|
||||||
|
|
||||||
|
### 实时、按时间顺序排列的时间线更新
|
||||||
|
|
||||||
|
您关注的人的更新会通过 WebSockets 实时显示在 UI 中。还有流水线视图!
|
||||||
|
|
||||||
|
### 媒体附件,如图片和短视频
|
||||||
|
|
||||||
|
上传和查看更新中附加的图片和 WebM/MP4 视频。没有音轨的视频将被视为 GIF;普通视频将连续循环播放!
|
||||||
|
|
||||||
|
### 安全和审核工具
|
||||||
|
|
||||||
|
Mastodon 包括私人帖子、锁定帐户、短语过滤、静音、屏蔽和各种其他功能,以及报告和审核系统。了解更多
|
||||||
|
|
||||||
|
### OAuth2 和简单的 REST API
|
||||||
|
|
||||||
|
Mastodon 充当 OAuth2 提供商,因此第三方应用可以使用 REST 和 Streaming
|
||||||
|
API。这带来了一个拥有众多选择的丰富应用生态系统!
|
||||||
|
|
||||||
|
## 安装说明
|
||||||
|
|
||||||
|
> 项目使用 软件版本
|
||||||
|
>
|
||||||
|
> Redis 4+
|
||||||
|
>
|
||||||
|
> PostgreSQL 12+
|
||||||
|
|
||||||
|
### 密钥
|
||||||
|
|
||||||
|
您必须提供唯一的加密密钥:`ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY` `ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY` `ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT`
|
||||||
|
|
||||||
|
您可以通过命令:`bin/rails db:encryption:init` 生成。
|
||||||
|
|
||||||
|
您也可以使用终端的 `openssl` 命令生成:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo "ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=$(openssl rand -hex 32)"
|
||||||
|
echo "ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=$(openssl rand -hex 32)"
|
||||||
|
echo "ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=$(openssl rand -hex 32)"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 其他密钥
|
||||||
|
|
||||||
|
安装后,进入安装目录,查看 `env/mastodon.env` 文件,里面有其他密钥的配置说明,在您有需要的情况下。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|

|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
additionalProperties:
|
||||||
|
key: mastodon
|
||||||
|
name: Mastodon (长毛象)
|
||||||
|
tags:
|
||||||
|
- WebSite
|
||||||
|
- Local
|
||||||
|
shortDescZh: 自由开源的去中心化的分布式微博客社交网络
|
||||||
|
shortDescEn: Your self-hosted, globally interconnected microblogging community
|
||||||
|
type: website
|
||||||
|
crossVersionUpdate: true
|
||||||
|
limit: 0
|
||||||
|
website: https://joinmastodon.org/
|
||||||
|
github: https://github.com/mastodon/mastodon/
|
||||||
|
document: https://docs.joinmastodon.org/
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
@@ -11,7 +11,7 @@ services:
|
|||||||
- PORT=7789
|
- PORT=7789
|
||||||
- CONFIG=/config
|
- CONFIG=/config
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
image: wushuo894/ani-rss:v1.1.318
|
image: wushuo894/ani-rss:v1.1.319
|
||||||
labels:
|
labels:
|
||||||
createdBy: Apps
|
createdBy: Apps
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- ./envs/global.env
|
- ./envs/global.env
|
||||||
- .env
|
- .env
|
||||||
image: envyafish/byte-muse:1.7.4
|
image: envyafish/byte-muse:1.7.5
|
||||||
labels:
|
labels:
|
||||||
createdBy: Apps
|
createdBy: Apps
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ services:
|
|||||||
env_file:
|
env_file:
|
||||||
- ./envs/global.env
|
- ./envs/global.env
|
||||||
- .env
|
- .env
|
||||||
image: usual2970/certimate:0.3.3
|
image: usual2970/certimate:v0.3.4
|
||||||
labels:
|
labels:
|
||||||
createdBy: Apps
|
createdBy: Apps
|
||||||
networks:
|
networks:
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
# Postgres 服务 (前置检查) [必填]
|
||||||
|
PANEL_POSTGRES_TYPE=postgresql
|
||||||
|
|
||||||
|
# Redis 服务 (前置检查) [必填]
|
||||||
|
PANEL_REDIS_TYPE=redis
|
||||||
|
|
||||||
|
# 数据持久化路径 [必填]
|
||||||
|
MASTODON_ROOT_PATH=/home/mastodon
|
||||||
|
|
||||||
|
# WebUI 端口 [必填]
|
||||||
|
PANEL_APP_PORT_HTTP=3000
|
||||||
|
|
||||||
|
# Stream 端口 [必填]
|
||||||
|
PANEL_APP_PORT_STREAM=4000
|
||||||
|
|
||||||
|
# 数据库加密密钥 [必填]
|
||||||
|
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=
|
||||||
|
|
||||||
|
# 数据库加密盐 [必填]
|
||||||
|
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=
|
||||||
|
|
||||||
|
# 数据库加密主键 [必填]
|
||||||
|
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=
|
||||||
|
|
||||||
|
# 密钥 [必填]
|
||||||
|
SECRET_KEY_BASE=
|
||||||
|
|
||||||
|
# OTP 密钥 [必填]
|
||||||
|
OTP_SECRET=
|
||||||
|
|
||||||
|
# 数据库 主机地址 [必填]
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
|
||||||
|
# 数据库 端口 [必填]
|
||||||
|
DB_PORT=5432
|
||||||
|
|
||||||
|
# 数据库 名称 [必填]
|
||||||
|
DB_NAME=mastodon
|
||||||
|
|
||||||
|
# 数据库 用户名 [必填]
|
||||||
|
DB_USER=mastodon
|
||||||
|
|
||||||
|
# 数据库 密码 [必填]
|
||||||
|
DB_PASS=
|
||||||
|
|
||||||
|
# Redis 主机 [必填]
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
|
||||||
|
# Redis 端口 [必填]
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
# Redis 索引 (0-20) [必填]
|
||||||
|
REDIS_DB=0
|
||||||
|
|
||||||
|
# Redis 用户名
|
||||||
|
REDIS_USERNAME=
|
||||||
|
|
||||||
|
# Redis 密码
|
||||||
|
REDIS_PASSWORD=
|
||||||
|
|
||||||
|
# ES数据库 主机地址
|
||||||
|
ES_HOST=127.0.0.1
|
||||||
|
|
||||||
|
# ES数据库 端口
|
||||||
|
ES_PORT=9200
|
||||||
|
|
||||||
|
# ES数据库 用户名
|
||||||
|
ES_USER=elastic
|
||||||
|
|
||||||
|
# ES数据库 密码
|
||||||
|
ES_PASS=
|
||||||
|
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
networks:
|
||||||
|
1panel-network:
|
||||||
|
external: true
|
||||||
|
services:
|
||||||
|
mastodon:
|
||||||
|
command: bundle exec puma -C config/puma.rb
|
||||||
|
container_name: mastodon
|
||||||
|
env_file:
|
||||||
|
- ./envs/global.env
|
||||||
|
- ./envs/mastodon.env
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
image: ghcr.io/mastodon/mastodon:v4.3.6
|
||||||
|
labels:
|
||||||
|
createdBy: Apps
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
ports:
|
||||||
|
- ${PANEL_APP_PORT_HTTP}:3000
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ${MASTODON_ROOT_PATH}/system:/mastodon/public/system
|
||||||
|
sidekiq-mastodon:
|
||||||
|
command: bundle exec sidekiq
|
||||||
|
container_name: sidekiq-mastodon
|
||||||
|
env_file:
|
||||||
|
- ./envs/global.env
|
||||||
|
- ./envs/mastodon.env
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
image: ghcr.io/mastodon/mastodon:v4.3.6
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ${MASTODON_ROOT_PATH}/system:/mastodon/public/system
|
||||||
|
streaming-mastodon:
|
||||||
|
command: node ./streaming/index.js
|
||||||
|
container_name: streaming-mastodon
|
||||||
|
env_file:
|
||||||
|
- ./envs/global.env
|
||||||
|
- ./envs/mastodon.env
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Shanghai
|
||||||
|
image: ghcr.io/mastodon/mastodon-streaming:v4.3.6
|
||||||
|
networks:
|
||||||
|
- 1panel-network
|
||||||
|
ports:
|
||||||
|
- ${PANEL_APP_PORT_STREAM}:4000
|
||||||
|
restart: always
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# copyright© 2024 XinJiang Ms Studio
|
||||||
|
ENV_FILE=.env
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# copyright© 2024 XinJiang Ms Studio
|
||||||
|
TZ=Asia/Shanghai
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
# This is a sample configuration file. You can generate your configuration
|
||||||
|
# with the `bundle exec rails mastodon:setup` interactive setup wizard, but to customize
|
||||||
|
# your setup even further, you'll need to edit it manually. This sample does
|
||||||
|
# not demonstrate all available configuration options. Please look at
|
||||||
|
# https://docs.joinmastodon.org/admin/config/ for the full documentation.
|
||||||
|
|
||||||
|
# Note that this file accepts slightly different syntax depending on whether
|
||||||
|
# you are using `docker-compose` or not. In particular, if you use
|
||||||
|
# `docker-compose`, the value of each declared variable will be taken verbatim,
|
||||||
|
# including surrounding quotes.
|
||||||
|
# See: https://github.com/mastodon/mastodon/issues/16895
|
||||||
|
|
||||||
|
# Federation
|
||||||
|
# ----------
|
||||||
|
# This identifies your server and cannot be changed safely later
|
||||||
|
# ----------
|
||||||
|
LOCAL_DOMAIN=example.com
|
||||||
|
|
||||||
|
# Redis
|
||||||
|
# -----
|
||||||
|
REDIS_HOST=localhost
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
# PostgreSQL
|
||||||
|
# ----------
|
||||||
|
DB_HOST=/var/run/postgresql
|
||||||
|
DB_USER=mastodon
|
||||||
|
DB_NAME=mastodon_production
|
||||||
|
DB_PASS=
|
||||||
|
DB_PORT=5432
|
||||||
|
|
||||||
|
# Elasticsearch (optional)
|
||||||
|
# ------------------------
|
||||||
|
ES_ENABLED=true
|
||||||
|
ES_HOST=localhost
|
||||||
|
ES_PORT=9200
|
||||||
|
# Authentication for ES (optional)
|
||||||
|
ES_USER=elastic
|
||||||
|
ES_PASS=password
|
||||||
|
|
||||||
|
# Secrets
|
||||||
|
# -------
|
||||||
|
# Make sure to use `bundle exec rails secret` to generate secrets
|
||||||
|
# -------
|
||||||
|
SECRET_KEY_BASE=
|
||||||
|
OTP_SECRET=
|
||||||
|
|
||||||
|
# Encryption secrets
|
||||||
|
# ------------------
|
||||||
|
# Must be available (and set to same values) for all server processes
|
||||||
|
# These are private/secret values, do not share outside hosting environment
|
||||||
|
# Use `bin/rails db:encryption:init` to generate fresh secrets
|
||||||
|
# Do NOT change these secrets once in use, as this would cause data loss and other issues
|
||||||
|
# ------------------
|
||||||
|
# ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=
|
||||||
|
# ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=
|
||||||
|
# ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=
|
||||||
|
|
||||||
|
# Web Push
|
||||||
|
# --------
|
||||||
|
# Generate with `bundle exec rails mastodon:webpush:generate_vapid_key`
|
||||||
|
# --------
|
||||||
|
VAPID_PRIVATE_KEY=
|
||||||
|
VAPID_PUBLIC_KEY=
|
||||||
|
|
||||||
|
# Sending mail
|
||||||
|
# ------------
|
||||||
|
SMTP_SERVER=
|
||||||
|
SMTP_PORT=587
|
||||||
|
SMTP_LOGIN=
|
||||||
|
SMTP_PASSWORD=
|
||||||
|
SMTP_FROM_ADDRESS=notifications@example.com
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# IP and session retention
|
||||||
|
# -----------------------
|
||||||
|
# Make sure to modify the scheduling of ip_cleanup_scheduler in config/sidekiq.yml
|
||||||
|
# to be less than daily if you lower IP_RETENTION_PERIOD below two days (172800).
|
||||||
|
# -----------------------
|
||||||
|
IP_RETENTION_PERIOD=31556952
|
||||||
|
SESSION_RETENTION_PERIOD=31556952
|
||||||
|
|
||||||
|
# Fetch All Replies Behavior
|
||||||
|
# --------------------------
|
||||||
|
# When a user expands a post (DetailedStatus view), fetch all of its replies
|
||||||
|
# (default: false)
|
||||||
|
FETCH_REPLIES_ENABLED=false
|
||||||
|
|
||||||
|
# Period to wait between fetching replies (in minutes)
|
||||||
|
FETCH_REPLIES_COOLDOWN_MINUTES=15
|
||||||
|
|
||||||
|
# Period to wait after a post is first created before fetching its replies (in minutes)
|
||||||
|
FETCH_REPLIES_INITIAL_WAIT_MINUTES=5
|
||||||
|
|
||||||
|
# Max number of replies to fetch - total, recursively through a whole reply tree
|
||||||
|
FETCH_REPLIES_MAX_GLOBAL=1000
|
||||||
|
|
||||||
|
# Max number of replies to fetch - for a single post
|
||||||
|
FETCH_REPLIES_MAX_SINGLE=500
|
||||||
|
|
||||||
|
# Max number of replies Collection pages to fetch - total
|
||||||
|
FETCH_REPLIES_MAX_PAGES=500
|
||||||
Reference in New Issue
Block a user