<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>misskey &amp;mdash; catgoat</title>
    <link>https://scream.today/catgoat/tag:misskey</link>
    <description>catgoat&#39;s personal blog!</description>
    <pubDate>Tue, 21 Apr 2026 14:35:36 +0000</pubDate>
    <item>
      <title>misskey</title>
      <link>https://scream.today/catgoat/misskey</link>
      <description>&lt;![CDATA[I&#39;m setting up #misskey as a test. This blog entry is basically  scratchpad/notes I take while I&#39;m doing setup stuff. Mostly this is for me, but if it helps anyone else, that&#39;s cool too.&#xA;&#xA;First off I&#39;m going to set this up on a base $5/mo digital ocean droplet. I&#39;m going for ubuntu 19.04. Misskey&#39;s docs say you need redis, node, and postgres with optionally elastic search and ffmpeg. I am also going to be using nginx and certbot.&#xA;&#xA;There also appears to be a docker image but since there is not english doc for it in the setup I don&#39;t think I will go that route!!&#xA;&#xA; create DO droplet&#xA;I added my SSH key so I could SSH in with it immediately as root@ip &#xA;Add a user for yourself and disable SSH for root -- look at this if you don&#39;t know what i mean https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-1804 if you set up an SSH key when you made the droplet then do the manual version. Add PermitRootLogin No to the ssh config file mentioned once you&#39;re sure that you can login as your new user.&#xA;&#xA;Before proceeding, I ran sudo apt-get update and also upgraded ubuntu to latest.&#xA;&#xA;Update node: https://github.com/nodesource/distributions/blob/master/README.md#debinstall&#xA;&#xA;Install postgres https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04&#xA;&#xA;Install redis sudo apt-get install redis&#xA;&#xA;install elasticsearch https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html (optional) -- follow the instructions for adding it to systemd&#xA;&#xA;install ffmpeg sudo apt-get install ffmpeg &#xA;&#xA;install build-essentials sudo apt-get install build-essential (needed for some node dependencies) &#xA; &#xA;follow the steps to clone the repo.&#xA;&#xA;now setup ufw and nginx&#xA;follow these: &#xA;https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04&#xA;https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-18-04&#xA;&#xA;now we can add nginx&#39;s config file for the server block, following the steps in the &#34;how to install nginx&#34; tutorial. start with this for a sample: https://gist.github.com/mei23/317b4dbdbaa5f71607e6a208003136d1 &#xA;run sudo nginx -t to test your config! &#xA;now we can do a certificate: https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04&#xA;&#xA;update your nginx config and add the correct lets encrypt info.&#xA;&#xA;From here on out I switched back and forth between user misskey and myself.&#xA;When running the steps provided from the misskey team, i did sudo su - misskey to switch, and exited back to my own account if i needed to run sudo.&#xA;&#xA;now follow the build steps in the misskey install steps&#xA;I ran into this issue: https://github.com/syuilo/misskey/issues/2918&#xA;&#xA; Then I ran out of memory when web pack was running lol, so i needed to make a swapfile https://linuxize.com/post/how-to-add-swap-space-on-ubuntu-18-04/ which i allocated 1gb for and then add this node variable  export NODEOPTIONS=--maxoldspacesize=4096 see: https://www.npmjs.com/package/increase-memory-limit &#xA;&#xA;great!! almost there..&#xA;&#xA;Create a postgres user and database&#xA;see documentation for createuser here: https://www.postgresql.org/docs/9.1/app-createuser.html&#xA;enter postgres by typing sudo -u postgres psql&#xA;after you&#39;ve created your user do this in psql:&#xA;`CREATE DATABASE yourdb;&#39;&#xA;&#39;GRANT ALL PRIVILEGES ON DATABASE yourdb TO youruser;`&#xA;\q to quit&#xA;&#xA;switch back to misskey user...&#xA;run the npm run init command as user misskey.&#xA;&#xA;now you can follow the steps in the GitHub instructions to run and then create misskey as a service!&#xA;&#xA;reload nginx after misskey is started, and you should be set! GL!!&#xA;&#xA;For email I am using mailgun and I followed their instructions for domain setup. I also added it within the admin interface with SMTP authentication.&#xA;&#xA;DO spaces has an issue where you cannot set default file privacy &#xA;https://github.com/syuilo/misskey/issues/5023&#xA;https://qiita.com/tamaina/items/3395cfac4fe03d89e8f8&#xA;https://www.digitalocean.com/community/questions/how-to-make-my-spaces-public&#xA;&#xA;However, if you pick up the line of code tamaina points out in the GitHub issue you can add the header you need to make everything public by default&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>I&#39;m setting up <a href="/catgoat/tag:misskey" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">misskey</span></a> as a test. This blog entry is basically  scratchpad/notes I take while I&#39;m doing setup stuff. Mostly this is for me, but if it helps anyone else, that&#39;s cool too.</p>

<p>First off I&#39;m going to set this up on a base $5/mo digital ocean droplet. I&#39;m going for ubuntu 19.04. Misskey&#39;s docs say you need redis, node, and postgres with optionally elastic search and ffmpeg. I am also going to be using nginx and certbot.</p>

<p>There also appears to be a docker image but since there is not english doc for it in the setup I don&#39;t think I will go that route!!</p>

<p> create DO droplet
I added my SSH key so I could SSH in with it immediately as root@ip
Add a user for yourself and disable SSH for root — look at this if you don&#39;t know what i mean <a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-1804" rel="nofollow">https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-1804</a> if you set up an SSH key when you made the droplet then do the manual version. Add PermitRootLogin No to the ssh config file mentioned once you&#39;re sure that you can login as your new user.</p>

<p>Before proceeding, I ran <code>sudo apt-get update</code> and also upgraded ubuntu to latest.</p>

<p>Update node: <a href="https://github.com/nodesource/distributions/blob/master/README.md#debinstall" rel="nofollow">https://github.com/nodesource/distributions/blob/master/README.md#debinstall</a></p>

<p>Install postgres <a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04" rel="nofollow">https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-18-04</a></p>

<p>Install redis <code>sudo apt-get install redis</code></p>

<p>install elasticsearch <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html" rel="nofollow">https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html</a> (optional) — follow the instructions for adding it to systemd</p>

<p>install ffmpeg <code>sudo apt-get install ffmpeg</code></p>

<p>install build-essentials <code>sudo apt-get install build-essential</code> (needed for some node dependencies)</p>

<p>follow the steps to clone the repo.</p>

<p>now setup ufw and nginx
follow these:
<a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04" rel="nofollow">https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04</a>
<a href="https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-18-04" rel="nofollow">https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-18-04</a></p>

<p>now we can add nginx&#39;s config file for the server block, following the steps in the “how to install nginx” tutorial. start with this for a sample: <a href="https://gist.github.com/mei23/317b4dbdbaa5f71607e6a208003136d1" rel="nofollow">https://gist.github.com/mei23/317b4dbdbaa5f71607e6a208003136d1</a>
run <code>sudo nginx -t</code> to test your config!
now we can do a certificate: <a href="https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04" rel="nofollow">https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-18-04</a></p>

<p>update your nginx config and add the correct lets encrypt info.</p>

<p>From here on out I switched back and forth between user misskey and myself.
When running the steps provided from the misskey team, i did <code>sudo su - misskey</code> to switch, and exited back to my own account if i needed to run sudo.</p>

<p>now follow the build steps in the misskey install steps
I ran into this issue: <a href="https://github.com/syuilo/misskey/issues/2918" rel="nofollow">https://github.com/syuilo/misskey/issues/2918</a></p>

<p> Then I ran out of memory when web pack was running lol, so i needed to make a swapfile <a href="https://linuxize.com/post/how-to-add-swap-space-on-ubuntu-18-04/" rel="nofollow">https://linuxize.com/post/how-to-add-swap-space-on-ubuntu-18-04/</a> which i allocated 1gb for and then add this node variable <code>export NODE_OPTIONS=--max_old_space_size=4096</code> see: <a href="https://www.npmjs.com/package/increase-memory-limit" rel="nofollow">https://www.npmjs.com/package/increase-memory-limit</a></p>

<p>great!! almost there..</p>

<p>Create a postgres user and database
see documentation for createuser here: <a href="https://www.postgresql.org/docs/9.1/app-createuser.html" rel="nofollow">https://www.postgresql.org/docs/9.1/app-createuser.html</a>
enter postgres by typing <code>sudo -u postgres psql</code>
after you&#39;ve created your user do this in psql:
<code>CREATE DATABASE yourdb;&#39;
&#39;GRANT ALL PRIVILEGES ON DATABASE yourdb TO youruser;</code>
<code>\q</code> to quit</p>

<p>switch back to misskey user...
run the <code>npm run init</code> command as user misskey.</p>

<p>now you can follow the steps in the GitHub instructions to run and then create misskey as a service!</p>

<p>reload nginx after misskey is started, and you should be set! GL!!</p>

<p>For email I am using mailgun and I followed their instructions for domain setup. I also added it within the admin interface with SMTP authentication.</p>

<p>DO spaces has an issue where you cannot set default file privacy
<a href="https://github.com/syuilo/misskey/issues/5023" rel="nofollow">https://github.com/syuilo/misskey/issues/5023</a>
<a href="https://qiita.com/tamaina/items/3395cfac4fe03d89e8f8" rel="nofollow">https://qiita.com/tamaina/items/3395cfac4fe03d89e8f8</a>
<a href="https://www.digitalocean.com/community/questions/how-to-make-my-spaces-public" rel="nofollow">https://www.digitalocean.com/community/questions/how-to-make-my-spaces-public</a></p>

<p>However, if you pick up the line of code tamaina points out in the GitHub issue you can add the header you need to make everything public by default</p>
]]></content:encoded>
      <guid>https://scream.today/catgoat/misskey</guid>
      <pubDate>Sat, 01 Jun 2019 04:32:15 +0000</pubDate>
    </item>
  </channel>
</rss>