User Tools

Site Tools


myhelp:mastodon

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
myhelp:mastodon [2023/05/03 12:12] ulrichmyhelp:mastodon [2024/03/20 10:16] (current) – [Setting up systemd services] ulrich
Line 1: Line 1:
 I used the instructions from [[https://docs.joinmastodon.org/admin/install/|Mastodon]] and adopted it to fit better for me :) I used the instructions from [[https://docs.joinmastodon.org/admin/install/|Mastodon]] and adopted it to fit better for me :)
  
-====== Install Mastodon on Rocky Linux ======+====== Install Mastodon on Rocky Linux ======
 ===== Pre-requisites ===== ===== Pre-requisites =====
 +Enable EPEL is a good idea 
 +<code>
 +dnf config-manager --set-enabled powertools
 +dnf install epel-release
 +</code>
 +
 +Get the YARN repo 
 +<code>
 +curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
 +</code>
 +
 +Installing the needed packages
 +<code>
 +yum install -y git ruby ruby-devel postgresql-devel postgresql-server postgresql \
 + postgresql-contrib nodejs.x86_64 yarn make idn2.x86_64 libidn-devel.x86_64 \
 + libidn2-devel.x86_64 libidn.x86_64  libicu-devel.x86_64 libicu.x86_64 gcc gcc-c++ \
 + libzstd-devel openssl-devel tar redis nginx certbot.noarch \
 + python3-certbot-nginx.noarch ImageMagick.x86_64 libicu-devel.x86_64 postgresql-contrib.x86_64 \
 + libffi-devel.x86_64 libyaml.x86_64 autoconf.noarch protobuf.x86_64 \
 + libxml2-devel.x86_64 bison.x86_64 libpq-devel.x86_64 jemalloc-devel rbenv
 +</code>
 +
 +Add the user and change the home-dir
 +<code>
 +adduser mastodon
 +mv /home/mastodon /opt
 +usermod -d /opt/mastodon mastodon
 +</code>
 +
 +Start redis
 +<code>systemctl enable --now redis</code>
 +
 +===== Preparing the DB =====
 +<code>
 +systemctl start postgresql.service
 +/usr/bin/postgresql-setup --initdb --unit postgresql
 +sudo -u postgres psql
 +</code>
 +<code>
 +CREATE USER mastodon CREATEDB;
 +\q
 +</code>
 +
 +===== Setting up Mastodon =====
 +<code>
 +su - mastodon
 +</code>
 +
 +Use git to download the latest stable release of Mastodon:
 +<code>
 +git clone https://github.com/tootsuite/mastodon.git live && cd live
 +git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
 +</code>
 +
 +Now to install Ruby and JavaScript dependencies:
 +<code>
 +bundle config deployment 'true'
 +bundle config without 'development test'
 +bundle install -j$(getconf _NPROCESSORS_ONLN)
 +yarn install --pure-lockfile
 +</code>
 +
 +Run the interactive setup wizard:
 +<code>
 +RAILS_ENV=production bundle exec rake mastodon:setup
 +</code>
 +
 +
 +===== Setting up nginx =====
 +Copy the prepared nginx.conf into the nginxc config-dir. Change the hostname and the root-dir.
 +<code>
 +cp /opt/mastodon/live/dist/nginx.conf /etc/nginx/conf.d/mastodon.conf
 +sed -i 's:/home/mastodon/live/public;:/opt/mastodon/live/public;:g' /etc/nginx/conf.d/mastodon.conf
 +sed -i 's/example.com/social.server17.net/g' /etc/nginx/conf.d/mastodon.conf
 +</code>
 +
 +Ensure that the firewall is configured for http and https
 +<code>
 +firewall-cmd --add-service=http --permanent 
 +firewall-cmd --add-service=https --permanent 
 +firewall-cmd --reload
 +</code>
 +
 +Get a certifcate for your host/hostname
 +<code>
 +certbot --nginx -d social.server17.net
 +</code>
 +
 +===== Setting up systemd services =====
 +copy the files
 +<code>
 +cp /opt/mastodon/live/dist/mastodon-*.service /etc/systemd/system/
 +</code>
 +
 +and edit the files
 +<code>
 +sed -i 's:/home/mastodon/:/opt/mastodon/:g' /etc/systemd/system/mastodon-*
 +sed -i 's:/opt/mastodon/.rbenv/shims/bundle:/opt/mastodon/live/bin/bundle:g' /etc/systemd/system/mastodon-*
 +</code>
 +
 +now relaod the systemd and start evertything
 +<code>
 +systemctl daemon-reload
 +systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming
 +</code>
 +
 +
 +Maybe something went wrong with the install of the bundler gem and the services are not starting. Check if the gem is installed or just install it. 
 +<code>
 +# su - mastodon
 +cd live/
 +RAILS_ENV=production  gem install bundler
 +</code>
 +
 +
 +====== Tuning ======
 +===== Start tuning sidekiq =====
 +sidekiq is handling multiple queues. Each of them can run as an own process. Per process you should use a max. of 25 threads. 
 +
 +====== OLD HOW TO ======
 +===== Install Mastodon on Rocky Linux 8 =====
 +==== Pre-requisites ====
 Enable EPEL is a good idea  Enable EPEL is a good idea 
 <code> <code>
Line 29: Line 151:
  python3-certbot-nginx.noarch ImageMagick.x86_64 libicu-devel.x86_64 postgresql-contrib.x86_64 \  python3-certbot-nginx.noarch ImageMagick.x86_64 libicu-devel.x86_64 postgresql-contrib.x86_64 \
  libffi-devel.x86_64 libyaml-devel.x86_64 autoconf.noarch protobuf-compiler.x86_64 \  libffi-devel.x86_64 libyaml-devel.x86_64 autoconf.noarch protobuf-compiler.x86_64 \
- libxml2-devel.x86_64 bison.x86_64 libpq-devel.x86_64 jemalloc-devel+ libxml2-devel.x86_64 bison.x86_64 libpq-devel.x86_64 jemalloc-devel rbenv
 </code> </code>
  
Line 39: Line 161:
 </code> </code>
  
-===== Preparing the DB =====+==== Preparing the DB ====
 <code> <code>
 systemctl start postgresql.service systemctl start postgresql.service
Line 50: Line 172:
 </code> </code>
  
-===== Setting up Mastodon =====+==== Setting up Mastodon ====
 <code> <code>
 su - mastodon su - mastodon
Line 74: Line 196:
 </code> </code>
  
-===== Setting up nginx =====+==== Setting up nginx ====
 Copy the prepared nginx.conf into the nginxc config-dir. Change the hostname and the root-dir. Copy the prepared nginx.conf into the nginxc config-dir. Change the hostname and the root-dir.
 <code> <code>
Line 94: Line 216:
 </code> </code>
  
-===== Setting up systemd services =====+==== Setting up systemd services ====
 copy the files copy the files
 <code> <code>
Line 112: Line 234:
 </code> </code>
  
-====== Update Mastodon to 4.0.* ======+ 
 +===== Update Mastodon to 4.0.* =====
 That is just a how-to which worked for me. Do a Backup in advance! That is just a how-to which worked for me. Do a Backup in advance!
-===== Pre-requisites =====+==== Pre-requisites ====
 Backup everything! You do not want to stay up half of the night and fix something.   Backup everything! You do not want to stay up half of the night and fix something.  
  
Line 129: Line 252:
 </code> </code>
 That is necessary, because in my installation I changed it before.  That is necessary, because in my installation I changed it before. 
-===== the REAL update =====+==== the REAL update ====
 Here I just followed the manual from [[https://github.com/mastodon/mastodon/releases/tag/v4.0.0|Mastodon]] on Github.  Here I just followed the manual from [[https://github.com/mastodon/mastodon/releases/tag/v4.0.0|Mastodon]] on Github. 
  
Line 151: Line 274:
  
  
-===== Update to 4.0.2 =====+==== Update to 4.0.2 ====
 <code> <code>
 su - mastodon su - mastodon
Line 162: Line 285:
 YEAH! Welcome to the new version.  YEAH! Welcome to the new version. 
  
-====== Tuning ====== +===== Tuning ===== 
-===== Start tuning sidekiq =====+==== Start tuning sidekiq ====
 sidekiq is handling multiple queues. Each of them can run as an own process. Per process you should use a max. of 25 threads.  sidekiq is handling multiple queues. Each of them can run as an own process. Per process you should use a max. of 25 threads. 
 +
  
 {{tag>[HowTo]}} {{tag>[HowTo]}}
myhelp/mastodon.1683115971.txt.gz · Last modified: by ulrich