en:mastodon
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| en:mastodon [2026/08/03 19:10] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | en:mastodon [2026/08/03 19:11] (current) – Automatic push translation domele | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~~NOCACHE~~~ | ||
| + | FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME | ||
| + | < | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | </ | ||
| + | How to install Mastodon: | ||
| + | |||
| + | |||
| + | |||
| + | ===== Debian: ===== | ||
| + | |||
| + | * This is a quick and rough guide to get the most out of it. | ||
| + | * I would also suggest installing apt-cacher-ng on the host and adding it to the VM: | ||
| + | * < | ||
| + | * I assume you use a fresh, not used System. | ||
| + | * If we need to compile, we use ccache here to speed up due it might a 50/50 chance of a failure ;-) | ||
| + | * I also assume that this is a VM/ | ||
| + | * We Assume, you use Debian 12 - if you use i.e. debian 11 use this before: | ||
| + | * < | ||
| + | OLDDISTRI=bullseye | ||
| + | sed -i ' | ||
| + | sed -i ' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Installing Pre-Requirements ====== | ||
| + | |||
| + | * < | ||
| + | INSTALLPATH=/ | ||
| + | apt install -qy curl gnupg2 ca-certificates lsb-release debian-archive-keyring sudo git build-essential etckeeper | ||
| + | |||
| + | sudo curl https:// | ||
| + | sudo curl -fsSL https:// | ||
| + | echo "deb [signed-by=/ | ||
| + | curl -fsSL https:// | ||
| + | echo "deb http:// | ||
| + | echo " | ||
| + | sudo curl -fsSL https:// | ||
| + | sudo chmod a+r / | ||
| + | sudo sh -c 'echo "deb https:// | ||
| + | wget --quiet -O - https:// | ||
| + | sudo echo \ | ||
| + | "deb [arch=$(dpkg --print-architecture) signed-by=/ | ||
| + | $(. / | ||
| + | sudo tee / | ||
| + | for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done | ||
| + | sudo apt -qy update && sudo apt -qy dist-upgrade | ||
| + | sudo update-ccache-symlinks | ||
| + | echo PATH="/ | ||
| + | PATH="/ | ||
| + | sudo install -m 0755 -d / | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Downloading sources ===== | ||
| + | INSTALLPATH=/ | ||
| + | git clone https:// | ||
| + | git clone https:// | ||
| + | cd ~/.rbenv && src/ | ||
| + | echo ' | ||
| + | echo 'eval " | ||
| + | source ~/.bashrc | ||
| + | cd $INSTALLPATH | ||
| + | gem install bundler | ||
| + | git clone https:// | ||
| + | git clone https:// | ||
| + | cd $INSTALLPATH && rbenv install 3.2.3 | ||
| + | cd $INSTALLPATH && rbenv global 3.2.3 | ||
| + | |||
| + | |||
| + | ===== Setting up Mastodon: Cloning User and Repository ===== | ||
| + | FIXME | ||
| + | * < | ||
| + | INSTALLPATH=/ | ||
| + | INSTALLUSER=mastodon | ||
| + | sudo adduser $INSTALLUSER | ||
| + | sudo adduser $INSTALLUSER docker | ||
| + | sudo usermod --home=$INSTALLPATH $INSTALLUSER | ||
| + | sudo usermod -g $INSTALLUSER www-data | ||
| + | sudo usermod -g www-data $INSTALLUSER | ||
| + | sudo chown -R $INSTALLUSER: | ||
| + | sudo chmod 755 $INSTALLPATH | ||
| + | su - $INSTALLUSER -c "cp $INSTALLPATH/ | ||
| + | su - $INSTALLUSER -c "sed -i ' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Setting up Mastodon: .env.production ===== | ||
| + | |||
| + | * Quick note: You don’t need to edit the file; it will be overwritten by the next command. | ||
| + | * Follow the configuration guide. You don’t need to compile your own stuff. REALLY NOT. Save yourself the time :-) | ||
| + | * That’s why we’ve removed the build lines above. | ||
| + | * Trust me, it’s a right pain and a waste of time... ;-D | ||
| + | * < | ||
| + | |||
| + | * OPTIONAL: Pre-compile all assets. | ||
| + | * < | ||
| + | |||
| + | |||
| + | ===== Set up Mastodon: NGINX ===== | ||
| + | |||
| + | * We need to create and add some information for NGINX to use it | ||
| + | * Note: If you need to use a different reverse proxy in front of it, this hasn’t been tested and may not work | ||
| + | * < | ||
| + | INSTALLPATH=/ | ||
| + | sudo mkdir / | ||
| + | sudo cp $INSTALLPATH/ | ||
| + | sudo ln -s / | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Setting up Mastodon: systemd ===== | ||
| + | |||
| + | * We link the service files so they update automatically | ||
| + | * < | ||
| + | INSTALLPATH=/ | ||
| + | INSTALLUSER=mastodon | ||
| + | sudo ln -s $INSTALLPATH/ | ||
| + | sudo ln -s $INSTALLPATH/ | ||
| + | sudo ln -s $INSTALLPATH/ | ||
| + | sudo systemctl daemon-reload && sudo systemctl enable --now mastodon.service </ | ||
| + | |||
| + | * We check whether it was successful: | ||
| + | * < | ||
| + | INSTALLPATH=/ | ||
| + | watch docker compose -f $INSTALLPATH/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | == References: == | ||
| + | |||
| + | ~~REFNOTES~~ | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * FIXME | ||
