Forráskód Böngészése

Fix and update Mastodon

dennisro 6 éve
szülő
commit
84204ac6ad

+ 5 - 1
data/services/mastodon/containers.sh

@@ -2,6 +2,8 @@ mastodon_service_dockerbunker() {
 	docker run -d --user mastodon \
 		--name=${FUNCNAME[0]//_/-} \
 		--restart=always \
+		--health-cmd="wget -q --spider --header 'x-forwarded-proto: https' --proxy=off localhost:3000/api/v1/instance || exit 1" \
+		--health-interval=30s \
 		--network ${NETWORK} \
 		--network dockerbunker-${SERVICE_NAME} \
 		--env RUN_DB_MIGRATIONS=true --env UID=991 --env GID=991 --env WEB_CONCURRENCY=16 --env MAX_THREADS=20 --env SIDEKIQ_WORKERS=25 \
@@ -16,6 +18,8 @@ mastodon_streaming_dockerbunker() {
 	docker run -d --user mastodon \
 		--name=${FUNCNAME[0]//_/-} \
 		--restart=always \
+		--health-cmd="wget -q --spider --header 'x-forwarded-proto: https' --proxy=off localhost:3000/api/v1/instance || exit 1" \
+		--health-interval=30s \
 		--network ${NETWORK} \
 		--network dockerbunker-${SERVICE_NAME} \
 		--env RUN_DB_MIGRATIONS=true --env UID=991 --env GID=991 --env WEB_CONCURRENCY=16 --env MAX_THREADS=20 --env SIDEKIQ_WORKERS=25 \
@@ -93,6 +97,6 @@ mastodon_makeadmin_dockerbunker() {
 		-v ${SERVICE_NAME}-data-vol-1:${volumes[${SERVICE_NAME}-data-vol-1]} \
 		-v ${SERVICE_NAME}-data-vol-2:${volumes[${SERVICE_NAME}-data-vol-2]} \
 		-v ${SERVICE_NAME}-data-vol-3:${volumes[${SERVICE_NAME}-data-vol-3]} \
-	${IMAGES[service]} bash -c "RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=${1}" >/dev/null
+	${IMAGES[service]} bash -c "RAILS_ENV=production bin/tootctl accounts modify ${1} --role admin" >/dev/null
 	exit_response
 }

+ 7 - 6
data/services/mastodon/make_admin.sh

@@ -10,16 +10,17 @@ for env in "${environment[@]}";do
 	[[ -f "${BASE_DIR}/$env" ]] && source "${BASE_DIR}/$env"
 done
 
-image=( "dockerbunker/mastodon${glitch}" )
+image=( "tootsuite/mastodon" )
 
 echo -en "Making ${2} admin..."
 docker run -it --rm \
-	--name=${SERVICE_NAME}-setup-dockerbunker \
+	--name=${SERVICE_NAME}-admin-dockerbunker \
 	--network dockerbunker-${SERVICE_NAME} \
 	--env-file "${SERVICE_ENV}" \
-	-v mastodonglitch-data-vol-1:/mastodon/public/system \
-	-v mastodonglitch-data-vol-2:/mastodon/public/assets \
-	-v mastodonglitch-data-vol-3:/mastodon/public/packs \
-${IMAGES[service]} bash -c "RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=${2}" >/dev/null
+	--env user="${2}" \
+	-v mastodon-data-vol-1:/mastodon/public/system \
+	-v mastodon-data-vol-2:/mastodon/public/assets \
+	-v mastodon-data-vol-3:/mastodon/public/packs \
+${IMAGES[service]} bash -c "RAILS_ENV=production bin/tootctl accounts modify ${user} --role user"
 exit_response
 

+ 20 - 4
data/services/mastodon/mastodon.sh

@@ -16,7 +16,7 @@ declare -a containers=( "${SERVICE_NAME}-postgres-dockerbunker" "${SERVICE_NAME}
 declare -a add_to_network=( "${SERVICE_NAME}-service-dockerbunker" "${SERVICE_NAME}-streaming-dockerbunker" )
 declare -A volumes=( [${SERVICE_NAME}-data-vol-1]="/mastodon/public/system" [${SERVICE_NAME}-data-vol-2]="/mastodon/public/assets" [${SERVICE_NAME}-data-vol-3]="/mastodon/public/packs" [${SERVICE_NAME}-postgres-vol-1]="/var/lib/postgresql/data" [${SERVICE_NAME}-elasticsearch-vol-1]="/usr/share/elasticsearch/data" [${SERVICE_NAME}-redis-vol-1]="/data" )
 declare -a networks=( "dockerbunker-${SERVICE_NAME}" )
-declare -A IMAGES=( [service]="tootsuite/mastodon:v2.6.1" [redis]="redis:4.0-alpine" [postgres]="postgres:9.6-alpine" [elasticsearch]="docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3" )
+declare -A IMAGES=( [service]="tootsuite/mastodon" [redis]="redis:5.0-alpine" [postgres]="postgres:9.6-alpine" [elasticsearch]="docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3" )
 
 if [[ $1 == "make_admin" ]];then
 	if [[ -z $2 || $3 ]];then
@@ -43,7 +43,11 @@ upgrade() {
 	mastodon_redis_dockerbunker
 	mastodon_dbmigrateandprecompileassets_dockerbunker
 
-	docker_run_all
+	[[ ${ES_ENABLED} ]] && docker_run mastodon_elasticsearch_dockerbunker
+
+	docker_run mastodon_service_dockerbunker
+	docker_run mastodon_sidekiq_dockerbunker
+	docker_run mastodon_streaming_dockerbunker
 
 	delete_old_images
 
@@ -59,6 +63,12 @@ configure() {
 
 	configure_mx
 
+	if [ "${ES_ENABLED}" ]; then
+	  read -p "Enable Elasticsearch: " -ei "${ES_ENABLED}" ES_ENABLED
+	else
+	  read -p "Enable Elasticsearch: " -ei "false" ES_ENABLED
+	fi
+	
 	# avoid tr illegal byte sequence in macOS when generating random strings
 	if [[ $OSTYPE =~ "darwin" ]];then
 		if [[ $LC_ALL ]];then
@@ -88,7 +98,7 @@ configure() {
 	DB_NAME=postgres
 	DB_PASS=
 	DB_PORT=5432
-	ES_ENABLED=true
+	ES_ENABLED=${ES_ENABLED}
 	ES_HOST=es
 	ES_PORT=9200
 
@@ -107,6 +117,8 @@ configure() {
 		[[ $oldLC_ALL ]] && export LC_ALL=$oldLC_ALL || unset LC_ALL
 	fi
 
+	echo ""
+
 	mastodon_generatevapidkeys_dockerbunker
 	source "${ENV_DIR}"/${SERVICE_NAME}_tmp.env
 	rm "${ENV_DIR}"/${SERVICE_NAME}_tmp.env
@@ -127,7 +139,11 @@ setup() {
 	mastodon_redis_dockerbunker
 	mastodon_dbmigrateandprecompileassets_dockerbunker
 
-	docker_run_all
+	[[ ${ES_ENABLED} ]] && docker_run mastodon_elasticsearch_dockerbunker
+
+	docker_run mastodon_service_dockerbunker
+	docker_run mastodon_sidekiq_dockerbunker
+	docker_run mastodon_streaming_dockerbunker
 
 	post_setup_routine