Mastodon: Difference between revisions

 
(8 intermediate revisions by the same user not shown)
Line 9: Line 9:
** You will now have a PostgreSQL instance running on localhost:tcp/5432, if you didn't before.
** You will now have a PostgreSQL instance running on localhost:tcp/5432, if you didn't before.
** You will now have a Redis instance running on localhost:tcp/6379, if you didn't before.
** You will now have a Redis instance running on localhost:tcp/6379, if you didn't before.
* Restrict Redis to 127.0.0.1 by ensuring the following line is in <tt>/etc/redis/redis.conf</tt>:
** <tt>bind 127.0.0.1 ::1</tt>
** If necessary, run <tt>sudo systemctl restart redis</tt>
* So far as I can tell, you must now symlink <tt>/usr/bin/yarnpkg</tt> to <tt>yarn</tt> in some PATH directory 🤮:
* So far as I can tell, you must now symlink <tt>/usr/bin/yarnpkg</tt> to <tt>yarn</tt> in some PATH directory 🤮:
** <tt>ln -s /usr/bin/yarnpkg /usr/local/bin/yarn</tt>
** <tt>ln -s /usr/bin/yarnpkg /usr/local/bin/yarn</tt>
Line 20: Line 23:
* <tt>git clone https://github.com/tootsuite/mastodon.git ~/live</tt>
* <tt>git clone https://github.com/tootsuite/mastodon.git ~/live</tt>
* <tt>cd live</tt>
* <tt>cd live</tt>
* <tt>bundle config set --local deployment true</tt>
* <tt>RAILS_ENV=production bundle config set --local deployment true</tt>
* <tt>bundle config set --local without development:test</tt>
* <tt>RAILS_ENV=production bundle config set --local without development:test</tt>
* <tt>bundle install</tt>
* <tt>RAILS_ENV=production bundle install</tt>
* <tt>RAILS_ENV=production bundle exec rake mastodon:setup</tt>
* <tt>RAILS_ENV=production bundle exec rake mastodon:setup</tt>
** Use the same PostgreSQL user name you created earlier.
** Use the same PostgreSQL user name you created earlier.
Line 44: Line 47:
* <tt>for in in web sidekiq streaming ; do sudo systemctl start mastodon-$i ; done</tt>
* <tt>for in in web sidekiq streaming ; do sudo systemctl start mastodon-$i ; done</tt>
* Check the status of all three units with <tt>systemctl status</tt> and, if necessary, <tt>journalctl</tt>
* Check the status of all three units with <tt>systemctl status</tt> and, if necessary, <tt>journalctl</tt>
** You ought have a <tt>puma</tt> process listening on port 3000
** You ought have a <tt>node</tt> process listening on port 4000
** You ought have a <tt>node</tt> process listening on port 4000
* If good, <tt>for in in web sidekiq streaming ; do sudo systemctl enable mastodon-$i ; done</tt>
* If good, <tt>for in in web sidekiq streaming ; do sudo systemctl enable mastodon-$i ; done</tt>
Line 52: Line 56:


* <tt>sudo apt-get install default-jre-headless</tt>
* <tt>sudo apt-get install default-jre-headless</tt>
** You might ask, "But [[User:Dank|dank]], surely <tt>elasticsearch</tt> Depends on <tt>default-jre-headless</tt>?"
** '''Narrator:''' It does not Depend on <tt>default-jre-headless</tt>.
* <tt>apt-key adv --fetch-keys https://artifacts.elastic.co/GPG-KEY-elasticsearch</tt>
* <tt>apt-key adv --fetch-keys https://artifacts.elastic.co/GPG-KEY-elasticsearch</tt>
* <tt>echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list</tt>
* <tt>echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list</tt>
* <tt>sudo apt-get update && sudo apt-get install elasticsearch</tt>
* <tt>sudo apt-get update && sudo apt-get install elasticsearch</tt>
* <tt>sudoedit /etc/elasticsearch/elasticsearch.yml</tt> and change <tt>network.host</tt> to 127.0.0.1
** unless you love Romanian botnets all up in your shit
* <tt>systemctl start elasticsearch</tt>
** You ought now have a <tt>java</tt> process listening on tcp/9200 ''shudder''
* Add the following to <tt>.env.production</tt>:
* Add the following to <tt>.env.production</tt>:
<pre>
<pre>
Line 63: Line 73:
* Restart <tt>mastodon-sidekiq</tt> and <tt>mastodon-web</tt> units
* Restart <tt>mastodon-sidekiq</tt> and <tt>mastodon-web</tt> units
* <tt>RAILS_ENV=production bin/tootctl search deploy</tt>
* <tt>RAILS_ENV=production bin/tootctl search deploy</tt>
* <tt>sudo systemctl enable elasticsearch</tt> for persistence