From: Ian Kelling Date: Fri, 14 Apr 2017 04:46:52 +0000 (-0700) Subject: add mastodon server X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=commitdiff_plain;h=8c8d051aadaa324e88a61fd7cb16a37def1ca2b2 add mastodon server --- diff --git a/distro-end b/distro-end index a1d9389..7cac9a6 100755 --- a/distro-end +++ b/distro-end @@ -421,6 +421,112 @@ EOF sgo pump ########## end pump.io setup ############ + + ############# begin setup mastodon ############## + + # https://store.docker.com/editions/community/docker-ce-server-debian?tab=description + pi software-properties-common + curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - + sudo add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/debian \ + $(lsb_release -cs) \ + stable" + p update + pi docker-ce + sgo docker + # this may not be needed + ser start docker + + curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` | s dd of=/usr/local/bin/docker-compose + s chmod +x /usr/local/bin/docker-compose + + # i subscrubed to https://github.com/docker/compose/releases.atom + # to deal with updates manually. + + cd ~ + i clone https://github.com/tootsuite/mastodon + cd mastodon + # https://github.com/tootsuite/mastodon/tree/v1.1.2 + # subbed to atom feed to deal with updates + i co v1.1.2 + + # per instructions, uncomment redis/postgres persistence in docker-compose.yml + sed -i 's/^#//' docker-compose.yml + + cat >.env.production <<'EOF' +REDIS_HOST=redis +REDIS_PORT=6379 +DB_HOST=db +DB_USER=postgres +DB_NAME=postgres +DB_PASS= +DB_PORT=5432 + +LOCAL_DOMAIN=mast.iankelling.org +LOCAL_HTTPS=true + +SINGLE_USER_MODE=true + +SMTP_SERVER=10.8.0.4 +SMTP_PORT=25 +SMTP_LOGIN=li +SMTP_FROM_ADDRESS=notifications@mast.iankelling.org +SMTP_DOMAIN=mast.iankelling.org +SMTP_DELIVERY_METHOD=smtp +EOF + + for key in PAPERCLIP_SECRET SECRET_KEY_BASE OTP_SECRET; do + printf "%s=%s" $key "$(docker-compose run --rm web rake secret)" >>.env.production + done + s cat /etc/mailpass| while read -r domain port pass; do + if [[ $domain == mail.iankelling.org ]]; then + printf "SMTP_PASSWORD=%s" "$pass" >>.env.production + break + fi + done + + + + docker-compose run --rm web rails assets:precompile + + # docker daemon takes care of starting on boot. + docker-compose up -d + + acme-tiny-wrapper mast.iankelling.org + s a2enmod proxy_wstunnel headers + apache-site -f 3000 - mast.iankelling.org <<'EOF' + ProxyPreserveHost On + RequestHeader set X-Forwarded-Proto "https" + ProxyPass /500.html ! + ProxyPass /oops.png ! + ProxyPass /api/v1/streaming/ ws://localhost:4000/ + ProxyPassReverse /api/v1/streaming/ ws://localhost:4000/ + ErrorDocument 500 /500.html + ErrorDocument 501 /500.html + ErrorDocument 502 /500.html + ErrorDocument 503 /500.html + ErrorDocument 504 /500.html +EOF + + + ############### !!!!!!!!!!!!!!!!! + ############### manual steps: + + # only following 2 people atm, so not bothering to figure out backups + # when mastodon has not documented it at all. + # + # fsf@status.fsf.org + # cwebber@toot.cat + # dbd@status.fsf.org + # johns@status.fsf.org + + # sign in page is at https://mast.iankelling.org/auth/sign_in + # register as iank, then + # https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Administration-guide.md + # docker-compose run --rm web bundle exec rails mastodon:make_admin USERNAME=iank + + ############# end setup mastodon ############## + echo "$0: $(date): ending now)" exit 0 ;;