Update install docs (#38)

Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/38
Co-authored-by: norm <normandy@biribiri.dev>
Co-committed-by: norm <normandy@biribiri.dev>
This commit is contained in:
norm 2022-07-02 21:00:01 +00:00 committed by floatingghost
parent a40bf8be5e
commit 3ad3a114de
16 changed files with 350 additions and 364 deletions

View file

@ -22,7 +22,6 @@ If your platform is not supported, or you just want to be able to edit the sourc
- [Alpine Linux](https://docs.akkoma.dev/main/backend/installation/alpine_linux_en/) - [Alpine Linux](https://docs.akkoma.dev/main/backend/installation/alpine_linux_en/)
- [Arch Linux](https://docs.akkoma.dev/main/backend/installation/arch_linux_en/) - [Arch Linux](https://docs.akkoma.dev/main/backend/installation/arch_linux_en/)
- [CentOS 7](https://docs.akkoma.dev/main/backend/installation/centos7_en/)
- [Debian-based](https://docs.akkoma.dev/main/backend/installation/debian_based_en/) - [Debian-based](https://docs.akkoma.dev/main/backend/installation/debian_based_en/)
- [Debian-based (jp)](https://docs.akkoma.dev/main/backend/installation/debian_based_jp/) - [Debian-based (jp)](https://docs.akkoma.dev/main/backend/installation/debian_based_jp/)
- [FreeBSD](https://docs.akkoma.dev/main/backend/installation/freebsd_en/) - [FreeBSD](https://docs.akkoma.dev/main/backend/installation/freebsd_en/)

View file

@ -1,26 +1,28 @@
# Introduction to Pleroma **Note:** Akkoma documentation is still being updated, so you may still see references to Pleroma in many places.
## What is Pleroma?
Pleroma is a federated social networking platform, compatible with Mastodon and other ActivityPub implementations. It is free software licensed under the AGPLv3. # Introduction to Akkoma
It actually consists of two components: a backend, named simply Pleroma, and a user-facing frontend, named Pleroma-FE. It also includes the Mastodon frontend, if that's your thing. ## What is Akkoma?
Akkoma is a federated social networking platform, compatible with Mastodon and other ActivityPub implementations. It is free software licensed under the AGPLv3.
It actually consists of two components: a backend, named simply Akkoma, and a user-facing frontend, named Pleroma-FE. It also includes the Mastodon frontend, if that's your thing.
It's part of what we call the fediverse, a federated network of instances which speak common protocols and can communicate with each other. It's part of what we call the fediverse, a federated network of instances which speak common protocols and can communicate with each other.
One account on an instance is enough to talk to the entire fediverse! One account on an instance is enough to talk to the entire fediverse!
## How can I use it? ## How can I use it?
Pleroma instances are already widely deployed, a list can be found at <https://the-federation.info/pleroma> and <https://fediverse.network/pleroma>. Akkoma instances are already widely deployed, a list can be found at <https://the-federation.info/pleroma> and <https://fediverse.network/pleroma>.
If you don't feel like joining an existing instance, but instead prefer to deploy your own instance, that's easy too! If you don't feel like joining an existing instance, but instead prefer to deploy your own instance, that's easy too!
Installation instructions can be found in the installation section of these docs. Installation instructions can be found in the installation section of these docs.
## I got an account, now what? ## I got an account, now what?
Great! Now you can explore the fediverse! Open the login page for your Pleroma instance (e.g. <https://pleroma.soykaf.com>) and login with your username and password. (If you don't have an account yet, click on Register) Great! Now you can explore the fediverse! Open the login page for your Akkoma instance (e.g. <https://pleroma.soykaf.com>) and login with your username and password. (If you don't have an account yet, click on Register)
### Pleroma-FE ### Pleroma-FE
The default front-end used by Pleroma is Pleroma-FE. You can find more information on what it is and how to use it in the [Introduction to Pleroma-FE](../frontend). The default front-end used by Akkoma is Pleroma-FE. You can find more information on what it is and how to use it in the [Introduction to Pleroma-FE](../frontend).
### Mastodon interface ### Mastodon interface
If the Pleroma interface isn't your thing, or you're just trying something new but you want to keep using the familiar Mastodon interface, we got that too! If the Pleroma-FE interface isn't your thing, or you're just trying something new but you want to keep using the familiar Mastodon interface, we got that too!
Just add a "/web" after your instance url (e.g. <https://pleroma.soykaf.com/web>) and you'll end on the Mastodon web interface, but with a Pleroma backend! MAGIC! Just add a "/web" after your instance url (e.g. <https://pleroma.soykaf.com/web>) and you'll end on the Mastodon web interface, but with a Akkoma backend! MAGIC!
The Mastodon interface is from the Glitch-soc fork. For more information on the Mastodon interface you can check the [Mastodon](https://docs.joinmastodon.org/) and [Glitch-soc](https://glitch-soc.github.io/docs/) documentation. The Mastodon interface is from the Glitch-soc fork. For more information on the Mastodon interface you can check the [Mastodon](https://docs.joinmastodon.org/) and [Glitch-soc](https://glitch-soc.github.io/docs/) documentation.
Remember, what you see is only the frontend part of Mastodon, the backend is still Pleroma. Remember, what you see is only the frontend part of Mastodon, the backend is still Akkoma.

View file

@ -6,7 +6,7 @@
This guide is a step-by-step installation guide for Alpine Linux. The instructions were verified against Alpine v3.10 standard image. You might miss additional dependencies if you use `netboot` instead. This guide is a step-by-step installation guide for Alpine Linux. The instructions were verified against Alpine v3.10 standard image. You might miss additional dependencies if you use `netboot` instead.
It assumes that you have administrative rights, either as root or a user with [sudo permissions](https://www.linode.com/docs/tools-reference/custom-kernels-distros/install-alpine-linux-on-your-linode/#configuration). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu pleroma`; in this case, use `su -l <username> -s $SHELL -c 'command'` instead. It assumes that you have administrative rights, either as root or a user with [sudo permissions](https://www.linode.com/docs/tools-reference/custom-kernels-distros/install-alpine-linux-on-your-linode/#configuration). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu akkoma`; in this case, use `su -l <username> -s $SHELL -c 'command'` instead.
{! backend/installation/generic_dependencies.include !} {! backend/installation/generic_dependencies.include !}
@ -71,46 +71,46 @@ sudo rc-update add postgresql
sudo apk add ffmpeg imagemagick exiftool sudo apk add ffmpeg imagemagick exiftool
``` ```
### Install PleromaBE ### Install AkkomaBE
* Add a new system user for the Pleroma service: * Add a new system user for the Akkoma service:
```shell ```shell
sudo addgroup pleroma sudo addgroup akkoma
sudo adduser -S -s /bin/false -h /opt/pleroma -H -G pleroma pleroma sudo adduser -S -s /bin/false -h /opt/akkoma -H -G akkoma akkoma
``` ```
**Note**: To execute a single command as the Pleroma system user, use `sudo -Hu pleroma command`. You can also switch to a shell by using `sudo -Hu pleroma $SHELL`. If you dont have and want `sudo` on your system, you can use `su` as root user (UID 0) for a single command by using `su -l pleroma -s $SHELL -c 'command'` and `su -l pleroma -s $SHELL` for starting a shell. **Note**: To execute a single command as the Akkoma system user, use `sudo -Hu akkoma command`. You can also switch to a shell by using `sudo -Hu akkoma $SHELL`. If you dont have and want `sudo` on your system, you can use `su` as root user (UID 0) for a single command by using `su -l akkoma -s $SHELL -c 'command'` and `su -l akkoma -s $SHELL` for starting a shell.
* Git clone the PleromaBE repository and make the Pleroma user the owner of the directory: * Git clone the AkkomaBE repository and make the Akkoma user the owner of the directory:
```shell ```shell
sudo mkdir -p /opt/pleroma sudo mkdir -p /opt/akkoma
sudo chown -R pleroma:pleroma /opt/pleroma sudo chown -R akkoma:akkoma /opt/akkoma
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma sudo -Hu akkoma git clone https://akkoma.dev/AkkomaGang/akkoma.git /opt/akkoma
``` ```
* Change to the new directory: * Change to the new directory:
```shell ```shell
cd /opt/pleroma cd /opt/akkoma
``` ```
* Install the dependencies for Pleroma and answer with `yes` if it asks you to install `Hex`: * Install the dependencies for Akkoma and answer with `yes` if it asks you to install `Hex`:
```shell ```shell
sudo -Hu pleroma mix deps.get sudo -Hu akkoma mix deps.get
``` ```
* Generate the configuration: `sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen` * Generate the configuration: `sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen`
* Answer with `yes` if it asks you to install `rebar3`. * Answer with `yes` if it asks you to install `rebar3`.
* This may take some time, because parts of pleroma get compiled first. * This may take some time, because parts of akkoma get compiled first.
* After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`. * After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`.
* Check the configuration and if all looks right, rename it, so Pleroma will load it (`prod.secret.exs` for productive instance, `dev.secret.exs` for development instances): * Check the configuration and if all looks right, rename it, so Akkoma will load it (`prod.secret.exs` for productive instance, `dev.secret.exs` for development instances):
```shell ```shell
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs} sudo -Hu akkoma mv config/{generated_config.exs,prod.secret.exs}
``` ```
* The previous command creates also the file `config/setup_db.psql`, with which you can create the database: * The previous command creates also the file `config/setup_db.psql`, with which you can create the database:
@ -122,18 +122,18 @@ sudo -Hu postgres psql -f config/setup_db.psql
* Now run the database migration: * Now run the database migration:
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate sudo -Hu akkoma MIX_ENV=prod mix ecto.migrate
``` ```
* Now you can start Pleroma already * Now you can start Akkoma already
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix phx.server sudo -Hu akkoma MIX_ENV=prod mix phx.server
``` ```
### Finalize installation ### Finalize installation
If you want to open your newly installed instance to the world, you should run nginx or some other webserver/proxy in front of Pleroma and you should consider to create an OpenRC service file for Pleroma. If you want to open your newly installed instance to the world, you should run nginx or some other webserver/proxy in front of Akkoma and you should consider to create an OpenRC service file for Akkoma.
#### Nginx #### Nginx
@ -161,7 +161,7 @@ If that doesnt work, make sure, that nginx is not already running. If it stil
* Copy the example nginx configuration to the nginx folder * Copy the example nginx configuration to the nginx folder
```shell ```shell
sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/conf.d/pleroma.conf sudo cp /opt/akkoma/installation/akkoma.nginx /etc/nginx/conf.d/akkoma.conf
``` ```
* Before starting nginx edit the configuration and change it to your needs. You must change change `server_name` and the paths to the certificates. You can use `nano` (install with `apk add nano` if missing). * Before starting nginx edit the configuration and change it to your needs. You must change change `server_name` and the paths to the certificates. You can use `nano` (install with `apk add nano` if missing).
@ -202,13 +202,13 @@ sudo certbot certonly --email <your@emailaddress> -d <yourdomain> --webroot -w /
* Copy example service file: * Copy example service file:
```shell ```shell
sudo cp /opt/pleroma/installation/init.d/pleroma /etc/init.d/pleroma sudo cp /opt/akkoma/installation/init.d/akkoma /etc/init.d/akkoma
``` ```
* Make sure to start it during the boot * Make sure to start it during the boot
```shell ```shell
sudo rc-update add pleroma sudo rc-update add akkoma
``` ```
#### Create your first user #### Create your first user
@ -216,13 +216,12 @@ sudo rc-update add pleroma
If your instance is up and running, you can create your first user with administrative rights with the following task: If your instance is up and running, you can create your first user with administrative rights with the following task:
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin sudo -Hu akkoma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
``` ```
#### Further reading #### Further reading
{! backend/installation/further_reading.include !} {! backend/installation/further_reading.include !}
## Questions ## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC. If you encounter any issues or have questions regarding the install process, feel free to ask at [meta.akkoma.dev](https://meta.akkoma.dev/).

View file

@ -4,7 +4,7 @@
## Installation ## Installation
This guide will assume that you have administrative rights, either as root or a user with [sudo permissions](https://wiki.archlinux.org/index.php/Sudo). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu pleroma`; in this case, use `su <username> -s $SHELL -c 'command'` instead. This guide will assume that you have administrative rights, either as root or a user with [sudo permissions](https://wiki.archlinux.org/index.php/Sudo). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu akkoma`; in this case, use `su <username> -s $SHELL -c 'command'` instead.
### Required packages ### Required packages
@ -65,45 +65,45 @@ sudo systemctl enable --now postgresql.service
sudo pacman -S ffmpeg imagemagick perl-image-exiftool sudo pacman -S ffmpeg imagemagick perl-image-exiftool
``` ```
### Install PleromaBE ### Install AkkomaBE
* Add a new system user for the Pleroma service: * Add a new system user for the Akkoma service:
```shell ```shell
sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma sudo useradd -r -s /bin/false -m -d /var/lib/akkoma -U akkoma
``` ```
**Note**: To execute a single command as the Pleroma system user, use `sudo -Hu pleroma command`. You can also switch to a shell by using `sudo -Hu pleroma $SHELL`. If you dont have and want `sudo` on your system, you can use `su` as root user (UID 0) for a single command by using `su -l pleroma -s $SHELL -c 'command'` and `su -l pleroma -s $SHELL` for starting a shell. **Note**: To execute a single command as the Akkoma system user, use `sudo -Hu akkoma command`. You can also switch to a shell by using `sudo -Hu akkoma $SHELL`. If you dont have and want `sudo` on your system, you can use `su` as root user (UID 0) for a single command by using `su -l akkoma -s $SHELL -c 'command'` and `su -l akkoma -s $SHELL` for starting a shell.
* Git clone the PleromaBE repository and make the Pleroma user the owner of the directory: * Git clone the AkkomaBE repository and make the Akkoma user the owner of the directory:
```shell ```shell
sudo mkdir -p /opt/pleroma sudo mkdir -p /opt/akkoma
sudo chown -R pleroma:pleroma /opt/pleroma sudo chown -R akkoma:akkoma /opt/akkoma
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma sudo -Hu akkoma git clone https://akkoma.dev/AkkomaGang/akkoma.git /opt/akkoma
``` ```
* Change to the new directory: * Change to the new directory:
```shell ```shell
cd /opt/pleroma cd /opt/akkoma
``` ```
* Install the dependencies for Pleroma and answer with `yes` if it asks you to install `Hex`: * Install the dependencies for Akkoma and answer with `yes` if it asks you to install `Hex`:
```shell ```shell
sudo -Hu pleroma mix deps.get sudo -Hu akkoma mix deps.get
``` ```
* Generate the configuration: `sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen` * Generate the configuration: `sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen`
* Answer with `yes` if it asks you to install `rebar3`. * Answer with `yes` if it asks you to install `rebar3`.
* This may take some time, because parts of pleroma get compiled first. * This may take some time, because parts of akkoma get compiled first.
* After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`. * After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`.
* Check the configuration and if all looks right, rename it, so Pleroma will load it (`prod.secret.exs` for productive instance, `dev.secret.exs` for development instances): * Check the configuration and if all looks right, rename it, so Akkoma will load it (`prod.secret.exs` for productive instance, `dev.secret.exs` for development instances):
```shell ```shell
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs} sudo -Hu akkoma mv config/{generated_config.exs,prod.secret.exs}
``` ```
* The previous command creates also the file `config/setup_db.psql`, with which you can create the database: * The previous command creates also the file `config/setup_db.psql`, with which you can create the database:
@ -115,18 +115,18 @@ sudo -Hu postgres psql -f config/setup_db.psql
* Now run the database migration: * Now run the database migration:
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate sudo -Hu akkoma MIX_ENV=prod mix ecto.migrate
``` ```
* Now you can start Pleroma already * Now you can start Akkoma already
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix phx.server sudo -Hu akkoma MIX_ENV=prod mix phx.server
``` ```
### Finalize installation ### Finalize installation
If you want to open your newly installed instance to the world, you should run nginx or some other webserver/proxy in front of Pleroma and you should consider to create a systemd service file for Pleroma. If you want to open your newly installed instance to the world, you should run nginx or some other webserver/proxy in front of Akkoma and you should consider to create a systemd service file for Akkoma.
#### Nginx #### Nginx
@ -168,8 +168,8 @@ If that doesnt work, make sure, that nginx is not already running. If it stil
* Copy the example nginx configuration and activate it: * Copy the example nginx configuration and activate it:
```shell ```shell
sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx sudo cp /opt/akkoma/installation/akkoma.nginx /etc/nginx/sites-available/akkoma.nginx
sudo ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx sudo ln -s /etc/nginx/sites-available/akkoma.nginx /etc/nginx/sites-enabled/akkoma.nginx
``` ```
* Before starting nginx edit the configuration and change it to your needs (e.g. change servername, change cert paths) * Before starting nginx edit the configuration and change it to your needs (e.g. change servername, change cert paths)
@ -187,21 +187,21 @@ sudo certbot certonly --email <your@emailaddress> -d <yourdomain> --webroot -w /
#### Other webserver/proxies #### Other webserver/proxies
You can find example configurations for them in `/opt/pleroma/installation/`. You can find example configurations for them in `/opt/akkoma/installation/`.
#### Systemd service #### Systemd service
* Copy example service file * Copy example service file
```shell ```shell
sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service sudo cp /opt/akkoma/installation/akkoma.service /etc/systemd/system/akkoma.service
``` ```
* Edit the service file and make sure that all paths fit your installation * Edit the service file and make sure that all paths fit your installation
* Enable and start `pleroma.service`: * Enable and start `akkoma.service`:
```shell ```shell
sudo systemctl enable --now pleroma.service sudo systemctl enable --now akkoma.service
``` ```
#### Create your first user #### Create your first user
@ -209,13 +209,12 @@ sudo systemctl enable --now pleroma.service
If your instance is up and running, you can create your first user with administrative rights with the following task: If your instance is up and running, you can create your first user with administrative rights with the following task:
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin sudo -Hu akkoma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
``` ```
#### Further reading #### Further reading
{! backend/installation/further_reading.include !} {! backend/installation/further_reading.include !}
## Questions ## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC. If you encounter any issues or have questions regarding the install process, feel free to ask at [meta.akkoma.dev](https://meta.akkoma.dev/).

View file

@ -4,7 +4,7 @@
## Installation ## Installation
This guide will assume you are on Debian 11 (“bullseye”) or later. This guide should also work with Ubuntu 18.04 (“Bionic Beaver”) and later. It also assumes that you have administrative rights, either as root or a user with [sudo permissions](https://www.digitalocean.com/community/tutorials/how-to-add-delete-and-grant-sudo-privileges-to-users-on-a-debian-vps). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu pleroma`; in this case, use `su <username> -s $SHELL -c 'command'` instead. This guide will assume you are on Debian 11 (“bullseye”) or later. This guide should also work with Ubuntu 18.04 (“Bionic Beaver”) and later. It also assumes that you have administrative rights, either as root or a user with [sudo permissions](https://www.digitalocean.com/community/tutorials/how-to-add-delete-and-grant-sudo-privileges-to-users-on-a-debian-vps). If you want to run this guide with root, ignore the `sudo` at the beginning of the lines, unless it calls a user like `sudo -Hu akkoma`; in this case, use `su <username> -s $SHELL -c 'command'` instead.
{! backend/installation/generic_dependencies.include !} {! backend/installation/generic_dependencies.include !}
@ -39,45 +39,45 @@ sudo apt install elixir erlang-dev erlang-nox
sudo apt install imagemagick ffmpeg libimage-exiftool-perl sudo apt install imagemagick ffmpeg libimage-exiftool-perl
``` ```
### Install PleromaBE ### Install AkkomaBE
* Add a new system user for the Pleroma service: * Add a new system user for the Akkoma service:
```shell ```shell
sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma sudo useradd -r -s /bin/false -m -d /var/lib/akkoma -U akkoma
``` ```
**Note**: To execute a single command as the Pleroma system user, use `sudo -Hu pleroma command`. You can also switch to a shell by using `sudo -Hu pleroma $SHELL`. If you dont have and want `sudo` on your system, you can use `su` as root user (UID 0) for a single command by using `su -l pleroma -s $SHELL -c 'command'` and `su -l pleroma -s $SHELL` for starting a shell. **Note**: To execute a single command as the Akkoma system user, use `sudo -Hu akkoma command`. You can also switch to a shell by using `sudo -Hu akkoma $SHELL`. If you dont have and want `sudo` on your system, you can use `su` as root user (UID 0) for a single command by using `su -l akkoma -s $SHELL -c 'command'` and `su -l akkoma -s $SHELL` for starting a shell.
* Git clone the PleromaBE repository and make the Pleroma user the owner of the directory: * Git clone the AkkomaBE repository and make the Akkoma user the owner of the directory:
```shell ```shell
sudo mkdir -p /opt/pleroma sudo mkdir -p /opt/akkoma
sudo chown -R pleroma:pleroma /opt/pleroma sudo chown -R akkoma:akkoma /opt/akkoma
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma sudo -Hu akkoma git clone https://akkoma.dev/AkkomaGang/akkoma.git /opt/akkoma
``` ```
* Change to the new directory: * Change to the new directory:
```shell ```shell
cd /opt/pleroma cd /opt/akkoma
``` ```
* Install the dependencies for Pleroma and answer with `yes` if it asks you to install `Hex`: * Install the dependencies for Akkoma and answer with `yes` if it asks you to install `Hex`:
```shell ```shell
sudo -Hu pleroma mix deps.get sudo -Hu akkoma mix deps.get
``` ```
* Generate the configuration: `sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen` * Generate the configuration: `sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen`
* Answer with `yes` if it asks you to install `rebar3`. * Answer with `yes` if it asks you to install `rebar3`.
* This may take some time, because parts of pleroma get compiled first. * This may take some time, because parts of akkoma get compiled first.
* After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`. * After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`.
* Check the configuration and if all looks right, rename it, so Pleroma will load it (`prod.secret.exs` for productive instance, `dev.secret.exs` for development instances): * Check the configuration and if all looks right, rename it, so Akkoma will load it (`prod.secret.exs` for productive instance, `dev.secret.exs` for development instances):
```shell ```shell
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs} sudo -Hu akkoma mv config/{generated_config.exs,prod.secret.exs}
``` ```
@ -90,18 +90,18 @@ sudo -Hu postgres psql -f config/setup_db.psql
* Now run the database migration: * Now run the database migration:
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate sudo -Hu akkoma MIX_ENV=prod mix ecto.migrate
``` ```
* Now you can start Pleroma already * Now you can start Akkoma already
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix phx.server sudo -Hu akkoma MIX_ENV=prod mix phx.server
``` ```
### Finalize installation ### Finalize installation
If you want to open your newly installed instance to the world, you should run nginx or some other webserver/proxy in front of Pleroma and you should consider to create a systemd service file for Pleroma. If you want to open your newly installed instance to the world, you should run nginx or some other webserver/proxy in front of Akkoma and you should consider to create a systemd service file for Akkoma.
#### Nginx #### Nginx
@ -131,8 +131,8 @@ If that doesnt work, make sure, that nginx is not already running. If it stil
* Copy the example nginx configuration and activate it: * Copy the example nginx configuration and activate it:
```shell ```shell
sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx sudo cp /opt/akkoma/installation/akkoma.nginx /etc/nginx/sites-available/akkoma.nginx
sudo ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx sudo ln -s /etc/nginx/sites-available/akkoma.nginx /etc/nginx/sites-enabled/akkoma.nginx
``` ```
* Before starting nginx edit the configuration and change it to your needs (e.g. change servername, change cert paths) * Before starting nginx edit the configuration and change it to your needs (e.g. change servername, change cert paths)
@ -150,21 +150,21 @@ sudo certbot certonly --email <your@emailaddress> -d <yourdomain> --webroot -w /
#### Other webserver/proxies #### Other webserver/proxies
You can find example configurations for them in `/opt/pleroma/installation/`. You can find example configurations for them in `/opt/akkoma/installation/`.
#### Systemd service #### Systemd service
* Copy example service file * Copy example service file
```shell ```shell
sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service sudo cp /opt/akkoma/installation/akkoma.service /etc/systemd/system/akkoma.service
``` ```
* Edit the service file and make sure that all paths fit your installation * Edit the service file and make sure that all paths fit your installation
* Enable and start `pleroma.service`: * Enable and start `akkoma.service`:
```shell ```shell
sudo systemctl enable --now pleroma.service sudo systemctl enable --now akkoma.service
``` ```
#### Create your first user #### Create your first user
@ -172,13 +172,12 @@ sudo systemctl enable --now pleroma.service
If your instance is up and running, you can create your first user with administrative rights with the following task: If your instance is up and running, you can create your first user with administrative rights with the following task:
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin sudo -Hu akkoma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
``` ```
#### Further reading #### Further reading
{! backend/installation/further_reading.include !} {! backend/installation/further_reading.include !}
## Questions ## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC. If you encounter any issues or have questions regarding the install process, feel free to ask at [meta.akkoma.dev](https://meta.akkoma.dev/).

View file

@ -1,17 +1,17 @@
# Pleromaの入れ方 # Akkomaの入れ方
## 日本語訳について ## 日本語訳について
この記事は [Installing on Debian based distributions](Installing on Debian based distributions) の日本語訳です。何かがおかしいと思ったら、原文を見てください。 この記事は [Installing on Debian based distributions](Installing on Debian based distributions) の日本語訳です。何かがおかしいと思ったら、原文を見てください。
## インストール ## インストール
このガイドはDebian Stretchを利用することを想定しています。Ubuntu 16.04や18.04でもおそらく動作します。また、ユーザはrootもしくはsudoにより管理者権限を持っていることを前提とします。もし、以下の操作をrootユーザで行う場合は、 `sudo` を無視してください。ただし、`sudo -Hu pleroma` のようにユーザを指定している場合には `su <username> -s $SHELL -c 'command'` を代わりに使ってください。 このガイドはDebian Stretchを利用することを想定しています。Ubuntu 16.04や18.04でもおそらく動作します。また、ユーザはrootもしくはsudoにより管理者権限を持っていることを前提とします。もし、以下の操作をrootユーザで行う場合は、 `sudo` を無視してください。ただし、`sudo -Hu akkoma` のようにユーザを指定している場合には `su <username> -s $SHELL -c 'command'` を代わりに使ってください。
### 必要なソフトウェア ### 必要なソフトウェア
- PostgreSQL 9.6以上 (Ubuntu16.04では9.5しか提供されていないので,[](https://www.postgresql.org/download/linux/ubuntu/)こちらから新しいバージョンを入手してください) - PostgreSQL 9.6以上 (Ubuntu16.04では9.5しか提供されていないので,[](https://www.postgresql.org/download/linux/ubuntu/)こちらから新しいバージョンを入手してください)
- `postgresql-contrib` 9.6以上 (同上) - `postgresql-contrib` 9.6以上 (同上)
- Elixir 1.8 以上 ([Debianのリポジトリからインストールしないこと ここからインストールすること!](https://elixir-lang.org/install.html#unix-and-unix-like)。または [asdf](https://github.com/asdf-vm/asdf) をpleromaユーザーでインストールしてください) - Elixir 1.8 以上 ([Debianのリポジトリからインストールしないこと ここからインストールすること!](https://elixir-lang.org/install.html#unix-and-unix-like)。または [asdf](https://github.com/asdf-vm/asdf) をakkomaユーザーでインストールしてください)
- `erlang-dev` - `erlang-dev`
- `erlang-nox` - `erlang-nox`
- `git` - `git`
@ -60,65 +60,65 @@ sudo apt install elixir erlang-dev erlang-nox
sudo apt install imagemagick ffmpeg libimage-exiftool-perl sudo apt install imagemagick ffmpeg libimage-exiftool-perl
``` ```
### Pleroma BE (バックエンド) をインストールします ### Akkoma BE (バックエンド) をインストールします
* Pleroma用に新しいユーザーを作ります。 * Akkoma用に新しいユーザーを作ります。
``` ```
sudo useradd -r -s /bin/false -m -d /var/lib/pleroma -U pleroma sudo useradd -r -s /bin/false -m -d /var/lib/akkoma -U akkoma
``` ```
**注意**: Pleromaユーザとして単発のコマンドを実行したい場合はは、`sudo -Hu pleroma command` を使ってください。シェルを使いたい場合は `sudo -Hu pleroma $SHELL`です。もし `sudo` を使わない場合は、rootユーザで `su -l pleroma -s $SHELL -c 'command'` とすることでコマンドを、`su -l pleroma -s $SHELL` とすることでシェルを開始できます。 **注意**: Akkomaユーザとして単発のコマンドを実行したい場合はは、`sudo -Hu akkoma command` を使ってください。シェルを使いたい場合は `sudo -Hu akkoma $SHELL`です。もし `sudo` を使わない場合は、rootユーザで `su -l akkoma -s $SHELL -c 'command'` とすることでコマンドを、`su -l akkoma -s $SHELL` とすることでシェルを開始できます。
* Gitリポジトリをクローンします。 * Gitリポジトリをクローンします。
``` ```
sudo mkdir -p /opt/pleroma sudo mkdir -p /opt/akkoma
sudo chown -R pleroma:pleroma /opt/pleroma sudo chown -R akkoma:akkoma /opt/akkoma
sudo -Hu pleroma git clone -b stable https://git.pleroma.social/pleroma/pleroma /opt/pleroma sudo -Hu akkoma git clone https://akkoma.dev/AkkomaGang/akkoma.git /opt/akkoma
``` ```
* 新しいディレクトリに移動します。 * 新しいディレクトリに移動します。
``` ```
cd /opt/pleroma cd /opt/akkoma
``` ```
* Pleromaが依存するパッケージをインストールします。Hexをインストールしてもよいか聞かれたら、yesを入力してください。 * Akkomaが依存するパッケージをインストールします。Hexをインストールしてもよいか聞かれたら、yesを入力してください。
``` ```
sudo -Hu pleroma mix deps.get sudo -Hu akkoma mix deps.get
``` ```
* コンフィギュレーションを生成します。 * コンフィギュレーションを生成します。
``` ```
sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen
``` ```
* rebar3をインストールしてもよいか聞かれたら、yesを入力してください。 * rebar3をインストールしてもよいか聞かれたら、yesを入力してください。
* このときにpleromaの一部がコンパイルされるため、この処理には時間がかかります。 * このときにakkomaの一部がコンパイルされるため、この処理には時間がかかります。
* あなたのインスタンスについて、いくつかの質問されます。この質問により `config/generated_config.exs` という設定ファイルが生成されます。 * あなたのインスタンスについて、いくつかの質問されます。この質問により `config/generated_config.exs` という設定ファイルが生成されます。
* コンフィギュレーションを確認して、もし問題なければ、ファイル名を変更してください。 * コンフィギュレーションを確認して、もし問題なければ、ファイル名を変更してください。
``` ```
sudo -Hu pleroma mv config/{generated_config.exs,prod.secret.exs} sudo -Hu akkoma mv config/{generated_config.exs,prod.secret.exs}
``` ```
* 先程のコマンドで、すでに `config/setup_db.psql` というファイルが作られています。このファイルをもとに、データベースを作成します。 * 先程のコマンドで、すでに `config/setup_db.psql` というファイルが作られています。このファイルをもとに、データベースを作成します。
``` ```
sudo -Hu pleroma MIX_ENV=prod mix pleroma.instance gen sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen
``` ```
* そして、データベースのマイグレーションを実行します。 * そして、データベースのマイグレーションを実行します。
``` ```
sudo -Hu pleroma MIX_ENV=prod mix ecto.migrate sudo -Hu akkoma MIX_ENV=prod mix ecto.migrate
``` ```
* これでPleromaを起動できるようになりました。 * これでAkkomaを起動できるようになりました。
``` ```
sudo -Hu pleroma MIX_ENV=prod mix phx.server sudo -Hu akkoma MIX_ENV=prod mix phx.server
``` ```
### インストールの最終段階 ### インストールの最終段階
あなたの新しいインスタンスを世界に向けて公開するには、nginx等のWebサーバやプロキシサーバをPleromaの前段に使用する必要があります。また、Pleroma のためにシステムサービスファイルを作成する必要があります。 あなたの新しいインスタンスを世界に向けて公開するには、nginx等のWebサーバやプロキシサーバをAkkomaの前段に使用する必要があります。また、Akkoma のためにシステムサービスファイルを作成する必要があります。
#### Nginx #### Nginx
@ -143,8 +143,8 @@ sudo certbot certonly --email <your@emailaddress> -d <yourdomain> --standalone
* nginxの設定ファイルサンプルをnginxフォルダーにコピーします。 * nginxの設定ファイルサンプルをnginxフォルダーにコピーします。
``` ```
sudo cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.nginx sudo cp /opt/akkoma/installation/akkoma.nginx /etc/nginx/sites-available/akkoma.nginx
sudo ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx sudo ln -s /etc/nginx/sites-available/akkoma.nginx /etc/nginx/sites-enabled/akkoma.nginx
``` ```
* nginxを起動する前に、設定ファイルを編集してください。例えば、サーバー名、証明書のパスなどを変更する必要があります。 * nginxを起動する前に、設定ファイルを編集してください。例えば、サーバー名、証明書のパスなどを変更する必要があります。
@ -160,19 +160,19 @@ sudo certbot certonly --email <your@emailaddress> -d <yourdomain> --webroot -w /
``` ```
#### 他のWebサーバやプロキシ #### 他のWebサーバやプロキシ
これに関してはサンプルが `/opt/pleroma/installation/` にあるので、探してみてください。 これに関してはサンプルが `/opt/akkoma/installation/` にあるので、探してみてください。
#### Systemd サービス #### Systemd サービス
* サービスファイルのサンプルをコピーします。 * サービスファイルのサンプルをコピーします。
``` ```
sudo cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service sudo cp /opt/akkoma/installation/akkoma.service /etc/systemd/system/akkoma.service
``` ```
* サービスファイルを変更します。すべてのパスが正しいことを確認してください * サービスファイルを変更します。すべてのパスが正しいことを確認してください
* サービスを有効化し `pleroma.service` を開始してください * サービスを有効化し `akkoma.service` を開始してください
``` ```
sudo systemctl enable --now pleroma.service sudo systemctl enable --now akkoma.service
``` ```
#### 初期ユーザの作成 #### 初期ユーザの作成
@ -180,16 +180,9 @@ sudo systemctl enable --now pleroma.service
新たにインスタンスを作成したら、以下のコマンドにより管理者権限を持った初期ユーザを作成できます。 新たにインスタンスを作成したら、以下のコマンドにより管理者権限を持った初期ユーザを作成できます。
``` ```
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin sudo -Hu akkoma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
``` ```
#### その他の設定とカスタマイズ #### その他の設定とカスタマイズ
{! backend/installation/further_reading.include !} {! backend/installation/further_reading.include !}
## 質問ある?
インストールについて質問がある、もしくは、うまくいかないときは、以下のところで質問できます。
* [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat)
* **libera.chat****#pleroma** IRCチャンネル

View file

@ -34,27 +34,27 @@ Setup the required services to automatically start at boot, using `sysrc(8)`.
# pkg install imagemagick ffmpeg p5-Image-ExifTool # pkg install imagemagick ffmpeg p5-Image-ExifTool
``` ```
## Configuring Pleroma ## Configuring Akkoma
Create a user for Pleroma: Create a user for Akkoma:
``` ```
# pw add user pleroma -m # pw add user akkoma -m
# echo 'export LC_ALL="en_US.UTF-8"' >> /home/pleroma/.profile # echo 'export LC_ALL="en_US.UTF-8"' >> /home/akkoma/.profile
# su -l pleroma # su -l akkoma
``` ```
Clone the repository: Clone the repository:
``` ```
$ cd $HOME # Should be the same as /home/pleroma $ cd $HOME # Should be the same as /home/akkoma
$ git clone -b stable https://git.pleroma.social/pleroma/pleroma.git $ git clone https://akkoma.dev/AkkomaGang/akkoma.git
``` ```
Configure Pleroma. Note that you need a domain name at this point: Configure Akkoma. Note that you need a domain name at this point:
``` ```
$ cd /home/pleroma/pleroma $ cd /home/akkoma/akkoma
$ mix deps.get # Enter "y" when asked to install Hex $ mix deps.get # Enter "y" when asked to install Hex
$ MIX_ENV=prod mix pleroma.instance gen # You will be asked a few questions here. $ MIX_ENV=prod mix pleroma.instance gen # You will be asked a few questions here.
$ cp config/generated_config.exs config/prod.secret.exs $ cp config/generated_config.exs config/prod.secret.exs
@ -66,7 +66,7 @@ now be a file in `config/setup_db.psql` that makes this easier. Edit it, and
it'll be protecting your database. As root, you can now initialize the database: it'll be protecting your database. As root, you can now initialize the database:
``` ```
# cd /home/pleroma/pleroma # cd /home/akkoma/akkoma
# sudo -Hu postgres -g postgres psql -f config/setup_db.psql # sudo -Hu postgres -g postgres psql -f config/setup_db.psql
``` ```
@ -81,11 +81,11 @@ Once this is done, restart Postgres with:
Run the database migrations. Run the database migrations.
Back as the pleroma user, run the following to implement any database migrations. Back as the akkoma user, run the following to implement any database migrations.
``` ```
# su -l pleroma # su -l akkoma
$ cd /home/pleroma/pleroma $ cd /home/akkoma/akkoma
$ MIX_ENV=prod mix ecto.migrate $ MIX_ENV=prod mix ecto.migrate
``` ```
@ -163,40 +163,40 @@ http {
} }
``` ```
As root, copy `/home/pleroma/pleroma/installation/pleroma.nginx` to As root, copy `/home/akkoma/akkoma/installation/akkoma.nginx` to
`/usr/local/etc/nginx/sites-available/pleroma.nginx`. `/usr/local/etc/nginx/sites-available/akkoma.nginx`.
Edit the defaults of `/usr/local/etc/nginx/sites-available/pleroma.nginx`: Edit the defaults of `/usr/local/etc/nginx/sites-available/akkoma.nginx`:
* Change `ssl_trusted_certificate` to `/var/db/acme/certs/example.tld/example.tld.cer`. * Change `ssl_trusted_certificate` to `/var/db/acme/certs/example.tld/example.tld.cer`.
* Change `ssl_certificate` to `/var/db/acme/certs/example.tld/fullchain.cer`. * Change `ssl_certificate` to `/var/db/acme/certs/example.tld/fullchain.cer`.
* Change `ssl_certificate_key` to `/var/db/acme/certs/example.tld/example.tld.key`. * Change `ssl_certificate_key` to `/var/db/acme/certs/example.tld/example.tld.key`.
* Change all references of `example.tld` to your instance's domain name. * Change all references of `example.tld` to your instance's domain name.
## Creating a startup script for Pleroma ## Creating a startup script for Akkoma
Pleroma will need to compile when it initially starts, which typically takes a longer Akkoma will need to compile when it initially starts, which typically takes a longer
period of time. Therefore, it is good practice to initially run pleroma from the period of time. Therefore, it is good practice to initially run akkoma from the
command-line before utilizing the rc.d script. That is done as follows: command-line before utilizing the rc.d script. That is done as follows:
``` ```
# su -l pleroma # su -l akkoma
$ cd $HOME/pleroma $ cd $HOME/akkoma
$ MIX_ENV=prod mix phx.server $ MIX_ENV=prod mix phx.server
``` ```
Copy the startup script to the correct location and make sure it's executable: Copy the startup script to the correct location and make sure it's executable:
``` ```
# cp /home/pleroma/pleroma/installation/freebsd/rc.d/pleroma /usr/local/etc/rc.d/pleroma # cp /home/akkoma/akkoma/installation/freebsd/rc.d/akkoma /usr/local/etc/rc.d/akkoma
# chmod +x /usr/local/etc/rc.d/pleroma # chmod +x /usr/local/etc/rc.d/akkoma
``` ```
Update the `/etc/rc.conf` and start pleroma with the following commands: Update the `/etc/rc.conf` and start akkoma with the following commands:
``` ```
# sysrc pleroma_enable=YES # sysrc akkoma_enable=YES
# service pleroma start # service akkoma start
``` ```
#### Create your first user #### Create your first user
@ -204,7 +204,7 @@ Update the `/etc/rc.conf` and start pleroma with the following commands:
If your instance is up and running, you can create your first user with administrative rights with the following task: If your instance is up and running, you can create your first user with administrative rights with the following task:
```shell ```shell
sudo -Hu pleroma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin sudo -Hu akkoma MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
``` ```
## Conclusion ## Conclusion
@ -212,7 +212,6 @@ Restart nginx with `# service nginx restart` and you should be up and running.
Make sure your time is in sync, or other instances will receive your posts with Make sure your time is in sync, or other instances will receive your posts with
incorrect timestamps. You should have ntpd running. incorrect timestamps. You should have ntpd running.
## Questions ## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC. If you encounter any issues or have questions regarding the install process, feel free to ask at [meta.akkoma.dev](https://meta.akkoma.dev/).

View file

@ -4,13 +4,13 @@
## Installation ## Installation
This guide will assume that you have administrative rights, either as root or a user with [sudo permissions](https://wiki.gentoo.org/wiki/Sudo). Lines that begin with `#` indicate that they should be run as the superuser. Lines using `$` should be run as the indicated user, e.g. `pleroma$` should be run as the `pleroma` user. This guide will assume that you have administrative rights, either as root or a user with [sudo permissions](https://wiki.gentoo.org/wiki/Sudo). Lines that begin with `#` indicate that they should be run as the superuser. Lines using `$` should be run as the indicated user, e.g. `akkoma$` should be run as the `akkoma` user.
{! backend/installation/generic_dependencies.include !} {! backend/installation/generic_dependencies.include !}
### Your make.conf, package.use, and USE flags ### Your make.conf, package.use, and USE flags
The only specific USE flag you should need is the `uuid` flag for `dev-db/postgresql`. Add the following line to any new file in `/etc/portage/package.use`. If you would like a suggested name for the file, either `postgresql` or `pleroma` would do fine, depending on how you like to arrange your package.use flags. The only specific USE flag you should need is the `uuid` flag for `dev-db/postgresql`. Add the following line to any new file in `/etc/portage/package.use`. If you would like a suggested name for the file, either `postgresql` or `akkoma` would do fine, depending on how you like to arrange your package.use flags.
```text ```text
dev-db/postgresql uuid dev-db/postgresql uuid
@ -88,9 +88,9 @@ The output from emerging postgresql should give you a command for initializing t
### A note on licenses, the AGPL, and deployment procedures ### A note on licenses, the AGPL, and deployment procedures
If you do not plan to make any modifications to your Pleroma instance, cloning directly from the main repo will get you what you need. However, if you plan on doing any contributions to upstream development, making changes or modifications to your instance, making custom themes, or want to play around--and let's be honest here, if you're using Gentoo that is most likely you--you will save yourself a lot of headache later if you take the time right now to fork the Pleroma repo and use that in the following section. If you do not plan to make any modifications to your Akkoma instance, cloning directly from the main repo will get you what you need. However, if you plan on doing any contributions to upstream development, making changes or modifications to your instance, making custom themes, or want to play around--and let's be honest here, if you're using Gentoo that is most likely you--you will save yourself a lot of headache later if you take the time right now to fork the Akkoma repo and use that in the following section.
Not only does this make it much easier to deploy changes you make, as you can commit and pull from upstream and all that good stuff from the comfort of your local machine then simply `git pull` on your instance server when you're ready to deploy, it also ensures you are compliant with the Affero General Public Licence that Pleroma is licenced under, which stipulates that all network services provided with modified AGPL code must publish their changes on a publicly available internet service and for free. It also makes it much easier to ask for help from and provide help to your fellow Pleroma admins if your public repo always reflects what you are running because it is part of your deployment procedure. Not only does this make it much easier to deploy changes you make, as you can commit and pull from upstream and all that good stuff from the comfort of your local machine then simply `git pull` on your instance server when you're ready to deploy, it also ensures you are compliant with the Affero General Public Licence that Akkoma is licenced under, which stipulates that all network services provided with modified AGPL code must publish their changes on a publicly available internet service and for free. It also makes it much easier to ask for help from and provide help to your fellow Akkoma admins if your public repo always reflects what you are running because it is part of your deployment procedure.
### Install media / graphics packages (optional, see [`docs/installation/optional/media_graphics_packages.md`](docs/installation/optional/media_graphics_packages.md)) ### Install media / graphics packages (optional, see [`docs/installation/optional/media_graphics_packages.md`](docs/installation/optional/media_graphics_packages.md))
@ -98,82 +98,82 @@ Not only does this make it much easier to deploy changes you make, as you can co
# emerge --ask media-video/ffmpeg media-gfx/imagemagick media-libs/exiftool # emerge --ask media-video/ffmpeg media-gfx/imagemagick media-libs/exiftool
``` ```
### Install PleromaBE ### Install AkkomaBE
* Add a new system user for the Pleroma service and set up default directories: * Add a new system user for the Akkoma service and set up default directories:
Remove `,wheel` if you do not want this user to be able to use `sudo`, however note that being able to `sudo` as the `pleroma` user will make finishing the insallation and common maintenence tasks somewhat easier: Remove `,wheel` if you do not want this user to be able to use `sudo`, however note that being able to `sudo` as the `akkoma` user will make finishing the insallation and common maintenence tasks somewhat easier:
```shell ```shell
# useradd -m -G users,wheel -s /bin/bash pleroma # useradd -m -G users,wheel -s /bin/bash akkoma
``` ```
Optional: If you are using sudo, review your sudo setup to ensure it works for you. The `/etc/sudoers` file has a lot of options and examples to help you, and [the Gentoo sudo guide](https://wiki.gentoo.org/wiki/Sudo) has more information. Finishing this installation will be somewhat easier if you have a way to sudo from the `pleroma` user, but it might be best to not allow that user to sudo during normal operation, and as such there will be a reminder at the end of this guide to double check if you would like to lock down the `pleroma` user after initial setup. Optional: If you are using sudo, review your sudo setup to ensure it works for you. The `/etc/sudoers` file has a lot of options and examples to help you, and [the Gentoo sudo guide](https://wiki.gentoo.org/wiki/Sudo) has more information. Finishing this installation will be somewhat easier if you have a way to sudo from the `akkoma` user, but it might be best to not allow that user to sudo during normal operation, and as such there will be a reminder at the end of this guide to double check if you would like to lock down the `akkoma` user after initial setup.
**Note**: To execute a single command as the Pleroma system user, use `sudo -Hu pleroma command`. You can also switch to a shell by using `sudo -Hu pleroma $SHELL`. If you don't have or want `sudo` or would like to use the system as the `pleroma` user for instance maintenance tasks, you can simply use `su - pleroma` to switch to the `pleroma` user. **Note**: To execute a single command as the Akkoma system user, use `sudo -Hu akkoma command`. You can also switch to a shell by using `sudo -Hu akkoma $SHELL`. If you don't have or want `sudo` or would like to use the system as the `akkoma` user for instance maintenance tasks, you can simply use `su - akkoma` to switch to the `akkoma` user.
* Git clone the PleromaBE repository and make the Pleroma user the owner of the directory: * Git clone the AkkomaBE repository and make the Akkoma user the owner of the directory:
It is highly recommended you use your own fork for the `https://path/to/repo` part below, however if you foolishly decide to forego using your own fork, the primary repo `https://git.pleroma.social/pleroma/pleroma` will work here. It is highly recommended you use your own fork for the `https://path/to/repo` part below, however if you foolishly decide to forego using your own fork, the primary repo `https://akkoma.dev/AkkomaGang/akkoma.git` will work here.
```shell ```shell
pleroma$ cd ~ akkoma$ cd ~
pleroma$ git clone -b stable https://path/to/repo akkoma$ git clone -b stable https://path/to/repo
``` ```
* Change to the new directory: * Change to the new directory:
```shell ```shell
pleroma$ cd ~/pleroma akkoma$ cd ~/akkoma
``` ```
* Install the dependencies for Pleroma and answer with `yes` if it asks you to install `Hex`: * Install the dependencies for Akkoma and answer with `yes` if it asks you to install `Hex`:
```shell ```shell
pleroma$ mix deps.get akkoma$ mix deps.get
``` ```
* Generate the configuration: * Generate the configuration:
```shell ```shell
pleroma$ MIX_ENV=prod mix pleroma.instance gen akkoma$ MIX_ENV=prod mix pleroma.instance gen
``` ```
* Answer with `yes` if it asks you to install `rebar3`. * Answer with `yes` if it asks you to install `rebar3`.
* This part precompiles some parts of Pleroma, so it might take a few moments * This part precompiles some parts of Akkoma, so it might take a few moments
* After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`. * After that it will ask you a few questions about your instance and generates a configuration file in `config/generated_config.exs`.
* Spend some time with `generated_config.exs` to ensure that everything is in order. If you plan on using an S3-compatible service to store your local media, that can be done here. You will likely mostly be using `prod.secret.exs` for a production instance, however if you would like to set up a development environment, make a copy to `dev.secret.exs` and adjust settings as needed as well. * Spend some time with `generated_config.exs` to ensure that everything is in order. If you plan on using an S3-compatible service to store your local media, that can be done here. You will likely mostly be using `prod.secret.exs` for a production instance, however if you would like to set up a development environment, make a copy to `dev.secret.exs` and adjust settings as needed as well.
```shell ```shell
pleroma$ mv config/generated_config.exs config/prod.secret.exs akkoma$ mv config/generated_config.exs config/prod.secret.exs
``` ```
* The previous command creates also the file `config/setup_db.psql`, with which you can create the database. Ensure that it is using the correct database name on the `CREATE DATABASE` and the `\c` lines, then run the postgres script: * The previous command creates also the file `config/setup_db.psql`, with which you can create the database. Ensure that it is using the correct database name on the `CREATE DATABASE` and the `\c` lines, then run the postgres script:
```shell ```shell
pleroma$ sudo -Hu postgres psql -f config/setup_db.psql akkoma$ sudo -Hu postgres psql -f config/setup_db.psql
``` ```
* Now run the database migration: * Now run the database migration:
```shell ```shell
pleroma$ MIX_ENV=prod mix ecto.migrate akkoma$ MIX_ENV=prod mix ecto.migrate
``` ```
* Now you can start Pleroma already * Now you can start Akkoma already
```shell ```shell
pleroma$ MIX_ENV=prod mix phx.server akkoma$ MIX_ENV=prod mix phx.server
``` ```
It probably won't work over the public internet quite yet, however, as we still need to set up a web servere to proxy to the pleroma application, as well as configure SSL. It probably won't work over the public internet quite yet, however, as we still need to set up a web servere to proxy to the akkoma application, as well as configure SSL.
### Finalize installation ### Finalize installation
Assuming you want to open your newly installed federated social network to, well, the federation, you should run nginx or some other webserver/proxy in front of Pleroma. It is also a good idea to set up Pleroma to run as a system service. Assuming you want to open your newly installed federated social network to, well, the federation, you should run nginx or some other webserver/proxy in front of Akkoma. It is also a good idea to set up Akkoma to run as a system service.
#### Nginx #### Nginx
@ -217,13 +217,13 @@ If you are using any additional subdomains, such as for a media proxy, you can r
* Copy the example nginx configuration and activate it: * Copy the example nginx configuration and activate it:
```shell ```shell
# cp /home/pleroma/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/ # cp /home/akkoma/akkoma/installation/akkoma.nginx /etc/nginx/sites-available/
# ln -s /etc/nginx/sites-available/pleroma.nginx /etc/nginx/sites-enabled/pleroma.nginx # ln -s /etc/nginx/sites-available/akkoma.nginx /etc/nginx/sites-enabled/akkoma.nginx
``` ```
* Take some time to ensure that your nginx config is correct * Take some time to ensure that your nginx config is correct
Replace all instances of `example.tld` with your instance's public URL. If for whatever reason you made changes to the port that your pleroma app runs on, be sure that is reflected in your configuration. Replace all instances of `example.tld` with your instance's public URL. If for whatever reason you made changes to the port that your akkoma app runs on, be sure that is reflected in your configuration.
Pay special attention to the line that begins with `ssl_ecdh_curve`. It is stongly advised to comment that line out so that OpenSSL will use its full capabilities, and it is also possible you are running OpenSSL 1.0.2 necessitating that you do this. Pay special attention to the line that begins with `ssl_ecdh_curve`. It is stongly advised to comment that line out so that OpenSSL will use its full capabilities, and it is also possible you are running OpenSSL 1.0.2 necessitating that you do this.
@ -254,14 +254,14 @@ This will run certbot on the first of the month at midnight. If you'd rather run
#### Other webserver/proxies #### Other webserver/proxies
If you would like to use other webservers or proxies, there are example configurations for some popular alternatives in `/home/pleroma/pleroma/installation/`. You can, of course, check out [the Gentoo wiki](https://wiki.gentoo.org) for more information on installing and configuring said alternatives. If you would like to use other webservers or proxies, there are example configurations for some popular alternatives in `/home/akkoma/akkoma/installation/`. You can, of course, check out [the Gentoo wiki](https://wiki.gentoo.org) for more information on installing and configuring said alternatives.
#### Create the uploads folder #### Create the uploads folder
Even if you are using S3, Pleroma needs someplace to store media posted on your instance. If you are using the `/home/pleroma/pleroma` root folder suggested by this guide, simply: Even if you are using S3, Akkoma needs someplace to store media posted on your instance. If you are using the `/home/akkoma/akkoma` root folder suggested by this guide, simply:
```shell ```shell
pleroma$ mkdir -p ~/pleroma/uploads akkoma$ mkdir -p ~/akkoma/uploads
``` ```
#### init.d service #### init.d service
@ -269,16 +269,16 @@ Even if you are using S3, Pleroma needs someplace to store media posted on your
* Copy example service file * Copy example service file
```shell ```shell
# cp /home/pleroma/pleroma/installation/init.d/pleroma /etc/init.d/ # cp /home/akkoma/akkoma/installation/init.d/akkoma /etc/init.d/
``` ```
* Be sure to take a look at this service file and make sure that all paths fit your installation * Be sure to take a look at this service file and make sure that all paths fit your installation
* Enable and start `pleroma`: * Enable and start `akkoma`:
```shell ```shell
# rc-update add pleroma default # rc-update add akkoma default
# /etc/init.d/pleroma start # /etc/init.d/akkoma start
``` ```
#### Create your first user #### Create your first user
@ -286,17 +286,16 @@ Even if you are using S3, Pleroma needs someplace to store media posted on your
If your instance is up and running, you can create your first user with administrative rights with the following task: If your instance is up and running, you can create your first user with administrative rights with the following task:
```shell ```shell
pleroma$ MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin akkoma$ MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
``` ```
#### Privilege cleanup #### Privilege cleanup
If you opted to allow sudo for the `pleroma` user but would like to remove the ability for greater security, now might be a good time to edit `/etc/sudoers` and/or change the groups the `pleroma` user belongs to. Be sure to restart the pleroma service afterwards to ensure it picks up on the changes. If you opted to allow sudo for the `akkoma` user but would like to remove the ability for greater security, now might be a good time to edit `/etc/sudoers` and/or change the groups the `akkoma` user belongs to. Be sure to restart the akkoma service afterwards to ensure it picks up on the changes.
#### Further reading #### Further reading
{! backend/installation/further_reading.include !} {! backend/installation/further_reading.include !}
## Questions ## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC. If you encounter any issues or have questions regarding the install process, feel free to ask at [meta.akkoma.dev](https://meta.akkoma.dev/).

View file

@ -20,65 +20,65 @@ The system needs to have `curl` and `unzip` installed for downloading and unpack
``` ```
## Moving content out of the application directory ## Moving content out of the application directory
When using OTP releases the application directory changes with every version so it would be a bother to keep content there (and also dangerous unless `--no-rm` option is used when updating). Fortunately almost all paths in Pleroma are configurable, so it is possible to move them out of there. When using OTP releases the application directory changes with every version so it would be a bother to keep content there (and also dangerous unless `--no-rm` option is used when updating). Fortunately almost all paths in Akkoma are configurable, so it is possible to move them out of there.
Pleroma should be stopped before proceeding. Akkoma should be stopped before proceeding.
### Moving uploads/custom public files directory ### Moving uploads/custom public files directory
```sh ```sh
# Create uploads directory and set proper permissions (skip if using a remote uploader) # Create uploads directory and set proper permissions (skip if using a remote uploader)
# Note: It does not have to be `/var/lib/pleroma/uploads`, you can configure it to be something else later # Note: It does not have to be `/var/lib/akkoma/uploads`, you can configure it to be something else later
mkdir -p /var/lib/pleroma/uploads mkdir -p /var/lib/akkoma/uploads
chown -R pleroma /var/lib/pleroma chown -R akkoma /var/lib/akkoma
# Create custom public files directory # Create custom public files directory
# Note: It does not have to be `/var/lib/pleroma/static`, you can configure it to be something else later # Note: It does not have to be `/var/lib/akkoma/static`, you can configure it to be something else later
mkdir -p /var/lib/pleroma/static mkdir -p /var/lib/akkoma/static
chown -R pleroma /var/lib/pleroma chown -R akkoma /var/lib/akkoma
# If you use the local uploader with default settings your uploads should be located in `~pleroma/uploads` # If you use the local uploader with default settings your uploads should be located in `~akkoma/uploads`
mv ~pleroma/uploads/* /var/lib/pleroma/uploads mv ~akkoma/uploads/* /var/lib/akkoma/uploads
# If you have created the custom public files directory with default settings it should be located in `~pleroma/instance/static` # If you have created the custom public files directory with default settings it should be located in `~akkoma/instance/static`
mv ~pleroma/instance/static /var/lib/pleroma/static mv ~akkoma/instance/static /var/lib/akkoma/static
``` ```
### Moving emoji ### Moving emoji
Assuming you have all emojis in subdirectories of `priv/static/emoji` moving them can be done with Assuming you have all emojis in subdirectories of `priv/static/emoji` moving them can be done with
```sh ```sh
mkdir /var/lib/pleroma/static/emoji mkdir /var/lib/akkoma/static/emoji
ls -d ~pleroma/priv/static/emoji/*/ | xargs -i sh -c 'mv "{}" "/var/lib/pleroma/static/emoji/$(basename {})"' ls -d ~akkoma/priv/static/emoji/*/ | xargs -i sh -c 'mv "{}" "/var/lib/akkoma/static/emoji/$(basename {})"'
``` ```
But, if for some reason you have custom emojis in the root directory you should copy the whole directory instead. But, if for some reason you have custom emojis in the root directory you should copy the whole directory instead.
```sh ```sh
mv ~pleroma/priv/static/emoji /var/lib/pleroma/static/emoji mv ~akkoma/priv/static/emoji /var/lib/akkoma/static/emoji
``` ```
and then copy custom emojis to `/var/lib/pleroma/static/emoji/custom`. and then copy custom emojis to `/var/lib/akkoma/static/emoji/custom`.
This is needed because storing custom emojis in the root directory is deprecated, but if you just move them to `/var/lib/pleroma/static/emoji/custom` it will break emoji urls on old posts. This is needed because storing custom emojis in the root directory is deprecated, but if you just move them to `/var/lib/akkoma/static/emoji/custom` it will break emoji urls on old posts.
Note that globs have been replaced with `pack_extensions`, so if your emojis are not in png/gif you should [modify the default value](../configuration/cheatsheet.md#emoji). Note that globs have been replaced with `pack_extensions`, so if your emojis are not in png/gif you should [modify the default value](../configuration/cheatsheet.md#emoji).
### Moving the config ### Moving the config
```sh ```sh
# Create the config directory # Create the config directory
# The default path for Pleroma config is /etc/pleroma/config.exs # The default path for Akkoma config is /etc/akkoma/config.exs
# but it can be set via PLEROMA_CONFIG_PATH environment variable # but it can be set via PLEROMA_CONFIG_PATH environment variable
mkdir -p /etc/pleroma mkdir -p /etc/akkoma
# Move the config file # Move the config file
mv ~pleroma/config/prod.secret.exs /etc/pleroma/config.exs mv ~akkoma/config/prod.secret.exs /etc/akkoma/config.exs
# Change `use Mix.Config` at the top to `import Config` # Change `use Mix.Config` at the top to `import Config`
$EDITOR /etc/pleroma/config.exs $EDITOR /etc/akkoma/config.exs
``` ```
## Installing the release ## Installing the release
Before proceeding, get the flavour from [Detecting flavour](otp_en.md#detecting-flavour) section in OTP installation guide. Before proceeding, get the flavour from [Detecting flavour](otp_en.md#detecting-flavour) section in OTP installation guide.
```sh ```sh
# Delete all files in pleroma user's directory # Delete all files in akkoma user's directory
rm -r ~pleroma/* rm -r ~akkoma/*
# Set the flavour environment variable to the string you got in Detecting flavour section. # Set the flavour environment variable to the string you got in Detecting flavour section.
# For example if the flavour is `amd64-musl` the command will be # For example if the flavour is `amd64-musl` the command will be
@ -86,58 +86,61 @@ export FLAVOUR="amd64-musl"
# Clone the release build into a temporary directory and unpack it # Clone the release build into a temporary directory and unpack it
# Replace `stable` with `unstable` if you want to run the unstable branch # Replace `stable` with `unstable` if you want to run the unstable branch
su pleroma -s $SHELL -lc " su akkoma -s $SHELL -lc "
curl 'https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=$FLAVOUR' -o /tmp/pleroma.zip curl 'https://akkoma-updates.s3-website.fr-par.scw.cloud/develop/akkoma-$FLAVOUR.zip' -o /tmp/akkoma.zip
unzip /tmp/pleroma.zip -d /tmp/ unzip /tmp/akkoma.zip -d /tmp/
" "
# Move the release to the home directory and delete temporary files # Move the release to the home directory and delete temporary files
su pleroma -s $SHELL -lc " su akkoma -s $SHELL -lc "
mv /tmp/release/* ~pleroma/ mv /tmp/release/* ~akkoma/
rmdir /tmp/release rmdir /tmp/release
rm /tmp/pleroma.zip rm /tmp/akkoma.zip
" "
# Start the instance to verify that everything is working as expected # Start the instance to verify that everything is working as expected
su pleroma -s $SHELL -lc "./bin/pleroma daemon" su akkoma -s $SHELL -lc "./bin/pleroma daemon"
# Wait for about 20 seconds and query the instance endpoint, if it shows your uri, name and email correctly, you are configured correctly # Wait for about 20 seconds and query the instance endpoint, if it shows your uri, name and email correctly, you are configured correctly
sleep 20 && curl http://localhost:4000/api/v1/instance sleep 20 && curl http://localhost:4000/api/v1/instance
# Stop the instance # Stop the instance
su pleroma -s $SHELL -lc "./bin/pleroma stop" su akkoma -s $SHELL -lc "./bin/pleroma stop"
``` ```
## Setting up a system service ## Setting up a system service
OTP releases have different service files than from-source installs so they need to be copied over again. OTP releases have different service files than from-source installs so they need to be copied over again.
**Warning:** The service files assume pleroma user's home directory is `/opt/pleroma`, please make sure all paths fit your installation. **Warning:** The service files assume akkoma user's home directory is `/opt/akkoma`, please make sure all paths fit your installation.
=== "Alpine" === "Alpine"
```sh ```sh
# Copy the service into a proper directory # Copy the service into a proper directory
cp -f ~pleroma/installation/init.d/pleroma /etc/init.d/pleroma cp -f ~akkoma/installation/init.d/akkoma /etc/init.d/akkoma
# Start pleroma # Start akkoma
rc-service pleroma start rc-service akkoma start
``` ```
=== "Debian/Ubuntu" === "Debian/Ubuntu"
```sh ```sh
# Copy the service into a proper directory # Copy the service into a proper directory
cp ~pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service cp ~akkoma/installation/akkoma.service /etc/systemd/system/akkoma.service
# Reload service files # Reload service files
systemctl daemon-reload systemctl daemon-reload
# Reenable pleroma to start on boot # Reenable akkoma to start on boot
systemctl reenable pleroma systemctl reenable akkoma
# Start pleroma # Start akkoma
systemctl start pleroma systemctl start akkoma
``` ```
## Running mix tasks ## Running mix tasks
Refer to [Running mix tasks](otp_en.md#running-mix-tasks) section from OTP release installation guide. Refer to [Running mix tasks](otp_en.md#running-mix-tasks) section from OTP release installation guide.
## Updating ## Updating
Refer to [Updating](otp_en.md#updating) section from OTP release installation guide. Refer to [Updating](otp_en.md#updating) section from OTP release installation guide.
## Questions
If you encounter any issues or have questions regarding the install process, feel free to ask at [meta.akkoma.dev](https://meta.akkoma.dev/).

View file

@ -16,14 +16,14 @@ aside from actually responsive maintainer(s)? let's lookie here, we've got:
## Actually migrating ## Actually migrating
Let's say you're very cool and have decided to move to the cooler Let's say you're very cool and have decided to move to the cooler
fork of Pleroma - luckily this isn't very hard. fork of Akkoma - luckily this isn't very hard.
You'll need to update the backend, then possibly the frontend, depending You'll need to update the backend, then possibly the frontend, depending
on your setup. on your setup.
## From Source ## From Source
If you're running the source Pleroma install, you'll need to set the If you're running the source Akkoma install, you'll need to set the
upstream git URL then just rebuild - that'll be: upstream git URL then just rebuild - that'll be:
```bash ```bash

View file

@ -8,7 +8,7 @@ pkgin should have been installed by the NetBSD installer if you selected
the right options. If it isn't installed, install it using pkg_add. the right options. If it isn't installed, install it using pkg_add.
Note that `postgresql11-contrib` is needed for the Postgres extensions Note that `postgresql11-contrib` is needed for the Postgres extensions
Pleroma uses. Akkoma uses.
The `mksh` shell is needed to run the Elixir `mix` script. The `mksh` shell is needed to run the Elixir `mix` script.
@ -50,28 +50,28 @@ First, run `# /etc/rc.d/pgsql start`. Then, `$ sudo -Hu pgsql -g pgsql createdb`
`# pkgin install ImageMagick ffmpeg4 p5-Image-ExifTool` `# pkgin install ImageMagick ffmpeg4 p5-Image-ExifTool`
## Configuring Pleroma ## Configuring Akkoma
Create a user for Pleroma: Create a user for Akkoma:
``` ```
# groupadd pleroma # groupadd akkoma
# useradd -d /home/pleroma -m -g pleroma -s /usr/pkg/bin/mksh pleroma # useradd -d /home/akkoma -m -g akkoma -s /usr/pkg/bin/mksh akkoma
# echo 'export LC_ALL="en_GB.UTF-8"' >> /home/pleroma/.profile # echo 'export LC_ALL="en_GB.UTF-8"' >> /home/akkoma/.profile
# su -l pleroma -c $SHELL # su -l akkoma -c $SHELL
``` ```
Clone the repository: Clone the repository:
``` ```
$ cd /home/pleroma $ cd /home/akkoma
$ git clone -b stable https://git.pleroma.social/pleroma/pleroma.git $ git clone https://akkoma.dev/AkkomaGang/akkoma.git
``` ```
Configure Pleroma. Note that you need a domain name at this point: Configure Akkoma. Note that you need a domain name at this point:
``` ```
$ cd /home/pleroma/pleroma $ cd /home/akkoma/akkoma
$ mix deps.get $ mix deps.get
$ MIX_ENV=prod mix pleroma.instance gen # You will be asked a few questions here. $ MIX_ENV=prod mix pleroma.instance gen # You will be asked a few questions here.
``` ```
@ -101,7 +101,7 @@ $ MIX_ENV=prod mix ecto.migrate
## Configuring nginx ## Configuring nginx
Install the example configuration file Install the example configuration file
`/home/pleroma/pleroma/installation/pleroma.nginx` to `/home/akkoma/akkoma/installation/akkoma.nginx` to
`/usr/pkg/etc/nginx.conf`. `/usr/pkg/etc/nginx.conf`.
Note that it will need to be wrapped in a `http {}` block. You should add Note that it will need to be wrapped in a `http {}` block. You should add
@ -172,24 +172,24 @@ Let's add auto-renewal to `/etc/daily.local`
--stateless --stateless
``` ```
## Creating a startup script for Pleroma ## Creating a startup script for Akkoma
Copy the startup script to the correct location and make sure it's executable: Copy the startup script to the correct location and make sure it's executable:
``` ```
# cp /home/pleroma/pleroma/installation/netbsd/rc.d/pleroma /etc/rc.d/pleroma # cp /home/akkoma/akkoma/installation/netbsd/rc.d/akkoma /etc/rc.d/akkoma
# chmod +x /etc/rc.d/pleroma # chmod +x /etc/rc.d/akkoma
``` ```
Add the following to `/etc/rc.conf`: Add the following to `/etc/rc.conf`:
``` ```
pleroma=YES akkoma=YES
pleroma_home="/home/pleroma" akkoma_home="/home/akkoma"
pleroma_user="pleroma" akkoma_user="akkoma"
``` ```
Run `# /etc/rc.d/pleroma start` to start Pleroma. Run `# /etc/rc.d/akkoma start` to start Akkoma.
## Conclusion ## Conclusion
@ -209,3 +209,6 @@ incorrect timestamps. You should have ntpd running.
## Questions ## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC. Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.
## Questions
If you encounter any issues or have questions regarding the install process, feel free to ask at [meta.akkoma.dev](https://meta.akkoma.dev/).

View file

@ -1,6 +1,6 @@
# Installing on OpenBSD # Installing on OpenBSD
This guide describes the installation and configuration of pleroma (and the required software to run it) on a single OpenBSD 6.6 server. This guide describes the installation and configuration of akkoma (and the required software to run it) on a single OpenBSD 6.6 server.
For any additional information regarding commands and configuration files mentioned here, check the man pages [online](https://man.openbsd.org/) or directly on your server with the man command. For any additional information regarding commands and configuration files mentioned here, check the man pages [online](https://man.openbsd.org/) or directly on your server with the man command.
@ -15,7 +15,7 @@ To install them, run the following command (with doas or as root):
pkg_add elixir gmake git postgresql-server postgresql-contrib cmake ffmpeg ImageMagick pkg_add elixir gmake git postgresql-server postgresql-contrib cmake ffmpeg ImageMagick
``` ```
Pleroma requires a reverse proxy, OpenBSD has relayd in base (and is used in this guide) and packages/ports are available for nginx (www/nginx) and apache (www/apache-httpd). Independently of the reverse proxy, [acme-client(1)](https://man.openbsd.org/acme-client) can be used to get a certificate from Let's Encrypt. Akkoma requires a reverse proxy, OpenBSD has relayd in base (and is used in this guide) and packages/ports are available for nginx (www/nginx) and apache (www/apache-httpd). Independently of the reverse proxy, [acme-client(1)](https://man.openbsd.org/acme-client) can be used to get a certificate from Let's Encrypt.
#### Optional software #### Optional software
@ -30,20 +30,20 @@ To install the above:
pkg_add ImageMagick ffmpeg p5-Image-ExifTool pkg_add ImageMagick ffmpeg p5-Image-ExifTool
``` ```
#### Creating the pleroma user #### Creating the akkoma user
Pleroma will be run by a dedicated user, \_pleroma. Before creating it, insert the following lines in login.conf: Akkoma will be run by a dedicated user, \_akkoma. Before creating it, insert the following lines in login.conf:
``` ```
pleroma:\ akkoma:\
:datasize-max=1536M:\ :datasize-max=1536M:\
:datasize-cur=1536M:\ :datasize-cur=1536M:\
:openfiles-max=4096 :openfiles-max=4096
``` ```
This creates a "pleroma" login class and sets higher values than default for datasize and openfiles (see [login.conf(5)](https://man.openbsd.org/login.conf)), this is required to avoid having pleroma crash some time after starting. This creates a "akkoma" login class and sets higher values than default for datasize and openfiles (see [login.conf(5)](https://man.openbsd.org/login.conf)), this is required to avoid having akkoma crash some time after starting.
Create the \_pleroma user, assign it the pleroma login class and create its home directory (/home/\_pleroma/): `useradd -m -L pleroma _pleroma` Create the \_akkoma user, assign it the akkoma login class and create its home directory (/home/\_akkoma/): `useradd -m -L akkoma _akkoma`
#### Clone pleroma's directory #### Clone akkoma's directory
Enter a shell as the \_pleroma user. As root, run `su _pleroma -;cd`. Then clone the repository with `git clone -b stable https://git.pleroma.social/pleroma/pleroma.git`. Pleroma is now installed in /home/\_pleroma/pleroma/, it will be configured and started at the end of this guide. Enter a shell as the \_akkoma user. As root, run `su _akkoma -;cd`. Then clone the repository with `git clone https://akkoma.dev/AkkomaGang/akkoma.git`. Akkoma is now installed in /home/\_akkoma/akkoma/, it will be configured and started at the end of this guide.
#### PostgreSQL #### PostgreSQL
Start a shell as the \_postgresql user (as root run `su _postgresql -` then run the `initdb` command to initialize postgresql: Start a shell as the \_postgresql user (as root run `su _postgresql -` then run the `initdb` command to initialize postgresql:
@ -137,7 +137,7 @@ ln -s /etc/ssl/private/<domain name>.key /etc/ssl/private/<IP address>.key
This will have to be done for each IPv4 and IPv6 address relayd listens on. This will have to be done for each IPv4 and IPv6 address relayd listens on.
#### relayd #### relayd
relayd will be used as the reverse proxy sitting in front of pleroma. relayd will be used as the reverse proxy sitting in front of akkoma.
Insert the following configuration in /etc/relayd.conf: Insert the following configuration in /etc/relayd.conf:
``` ```
# $OpenBSD: relayd.conf,v 1.4 2018/03/23 09:55:06 claudio Exp $ # $OpenBSD: relayd.conf,v 1.4 2018/03/23 09:55:06 claudio Exp $
@ -145,19 +145,19 @@ Insert the following configuration in /etc/relayd.conf:
ext_inet="<IPv4 address>" ext_inet="<IPv4 address>"
ext_inet6="<IPv6 address>" ext_inet6="<IPv6 address>"
table <pleroma_server> { 127.0.0.1 } table <akkoma_server> { 127.0.0.1 }
table <httpd_server> { 127.0.0.1 } table <httpd_server> { 127.0.0.1 }
http protocol plerup { # Protocol for upstream pleroma server http protocol plerup { # Protocol for upstream akkoma server
#tcp { nodelay, sack, socket buffer 65536, backlog 128 } # Uncomment and adjust as you see fit #tcp { nodelay, sack, socket buffer 65536, backlog 128 } # Uncomment and adjust as you see fit
tls ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305" tls ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305"
tls ecdhe secp384r1 tls ecdhe secp384r1
# Forward some paths to the local server (as pleroma won't respond to them as you might want) # Forward some paths to the local server (as akkoma won't respond to them as you might want)
pass request quick path "/robots.txt" forward to <httpd_server> pass request quick path "/robots.txt" forward to <httpd_server>
# Append a bunch of headers # Append a bunch of headers
match request header append "X-Forwarded-For" value "$REMOTE_ADDR" # This two header and the next one are not strictly required by pleroma but adding them won't hurt match request header append "X-Forwarded-For" value "$REMOTE_ADDR" # This two header and the next one are not strictly required by akkoma but adding them won't hurt
match request header append "X-Forwarded-By" value "$SERVER_ADDR:$SERVER_PORT" match request header append "X-Forwarded-By" value "$SERVER_ADDR:$SERVER_PORT"
match response header append "X-XSS-Protection" value "1; mode=block" match response header append "X-XSS-Protection" value "1; mode=block"
@ -170,7 +170,7 @@ http protocol plerup { # Protocol for upstream pleroma server
match request header append "Connection" value "upgrade" match request header append "Connection" value "upgrade"
#match response header append "Strict-Transport-Security" value "max-age=31536000; includeSubDomains" # Uncomment this only after you get HTTPS working. #match response header append "Strict-Transport-Security" value "max-age=31536000; includeSubDomains" # Uncomment this only after you get HTTPS working.
# If you do not want remote frontends to be able to access your Pleroma backend server, comment these lines # If you do not want remote frontends to be able to access your Akkoma backend server, comment these lines
match response header append "Access-Control-Allow-Origin" value "*" match response header append "Access-Control-Allow-Origin" value "*"
match response header append "Access-Control-Allow-Methods" value "POST, PUT, DELETE, GET, PATCH, OPTIONS" match response header append "Access-Control-Allow-Methods" value "POST, PUT, DELETE, GET, PATCH, OPTIONS"
match response header append "Access-Control-Allow-Headers" value "Authorization, Content-Type, Idempotency-Key" match response header append "Access-Control-Allow-Headers" value "Authorization, Content-Type, Idempotency-Key"
@ -184,7 +184,7 @@ relay wwwtls {
protocol plerup protocol plerup
forward to <pleroma_server> port 4000 check http "/" code 200 forward to <akkoma_server> port 4000 check http "/" code 200
forward to <httpd_server> port 80 check http "/robots.txt" code 200 forward to <httpd_server> port 80 check http "/robots.txt" code 200
} }
``` ```
@ -225,27 +225,27 @@ Replace *<network interface\>* by your server's network interface name (which yo
Check pf's configuration by running `pfctl -nf /etc/pf.conf`, load it with `pfctl -f /etc/pf.conf` and enable pf at boot with `rcctl enable pf`. Check pf's configuration by running `pfctl -nf /etc/pf.conf`, load it with `pfctl -f /etc/pf.conf` and enable pf at boot with `rcctl enable pf`.
#### Configure and start pleroma #### Configure and start akkoma
Enter a shell as \_pleroma (as root `su _pleroma -`) and enter pleroma's installation directory (`cd ~/pleroma/`). Enter a shell as \_akkoma (as root `su _akkoma -`) and enter akkoma's installation directory (`cd ~/akkoma/`).
Then follow the main installation guide: Then follow the main installation guide:
* run `mix deps.get` * run `mix deps.get`
* run `MIX_ENV=prod mix pleroma.instance gen` and enter your instance's information when asked * run `MIX_ENV=prod mix pleroma.instance gen` and enter your instance's information when asked
* copy config/generated\_config.exs to config/prod.secret.exs. The default values should be sufficient but you should edit it and check that everything seems OK. * copy config/generated\_config.exs to config/prod.secret.exs. The default values should be sufficient but you should edit it and check that everything seems OK.
* exit your current shell back to a root one and run `psql -U postgres -f /home/_pleroma/pleroma/config/setup_db.psql` to setup the database. * exit your current shell back to a root one and run `psql -U postgres -f /home/_akkoma/akkoma/config/setup_db.psql` to setup the database.
* return to a \_pleroma shell into pleroma's installation directory (`su _pleroma -;cd ~/pleroma`) and run `MIX_ENV=prod mix ecto.migrate` * return to a \_akkoma shell into akkoma's installation directory (`su _akkoma -;cd ~/akkoma`) and run `MIX_ENV=prod mix ecto.migrate`
As \_pleroma in /home/\_pleroma/pleroma, you can now run `LC_ALL=en_US.UTF-8 MIX_ENV=prod mix phx.server` to start your instance. As \_akkoma in /home/\_akkoma/akkoma, you can now run `LC_ALL=en_US.UTF-8 MIX_ENV=prod mix phx.server` to start your instance.
In another SSH session/tmux window, check that it is working properly by running `ftp -MVo - http://127.0.0.1:4000/api/v1/instance`, you should get json output. Double-check that *uri*'s value is your instance's domain name. In another SSH session/tmux window, check that it is working properly by running `ftp -MVo - http://127.0.0.1:4000/api/v1/instance`, you should get json output. Double-check that *uri*'s value is your instance's domain name.
##### Starting pleroma at boot ##### Starting akkoma at boot
An rc script to automatically start pleroma at boot hasn't been written yet, it can be run in a tmux session (tmux is in base). An rc script to automatically start akkoma at boot hasn't been written yet, it can be run in a tmux session (tmux is in base).
#### Create administrative user #### Create administrative user
If your instance is up and running, you can create your first user with administrative rights with the following command as the \_pleroma user. If your instance is up and running, you can create your first user with administrative rights with the following command as the \_akkoma user.
``` ```
LC_ALL=en_US.UTF-8 MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin LC_ALL=en_US.UTF-8 MIX_ENV=prod mix pleroma.user new <username> <your@emailaddress> --admin
``` ```
@ -256,4 +256,4 @@ LC_ALL=en_US.UTF-8 MIX_ENV=prod mix pleroma.user new <username> <your@emailaddre
## Questions ## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC. If you encounter any issues or have questions regarding the install process, feel free to ask at [meta.akkoma.dev](https://meta.akkoma.dev/).

View file

@ -1,4 +1,4 @@
# Pleroman asennus OpenBSD:llä # Akkoman asennus OpenBSD:llä
Tarvitset: Tarvitset:
* Oman domainin * Oman domainin
@ -45,19 +45,19 @@ Käynnistä tietokanta ja aseta se käynnistymään automaattisesti.
`# rcctl enable postgresql` `# rcctl enable postgresql`
Luo käyttäjä pleromaa varten (kysyy muutaman kysymyksen): Luo käyttäjä akkomaa varten (kysyy muutaman kysymyksen):
`# adduser pleroma` `# adduser akkoma`
Vaihda pleroma-käyttäjään ja mene kotihakemistoosi: Vaihda akkoma-käyttäjään ja mene kotihakemistoosi:
`# su - pleroma` `# su - akkoma`
Lataa pleroman lähdekoodi: Lataa akkoman lähdekoodi:
`$ git clone -b stable https://git.pleroma.social/pleroma/pleroma.git` `$ git clone https://akkoma.dev/AkkomaGang/akkoma.git`
`$ cd pleroma` `$ cd akkoma`
Asenna tarvittavat elixir-kirjastot: Asenna tarvittavat elixir-kirjastot:
@ -77,7 +77,7 @@ Aja luodut tietokantakomennot:
`$ MIX_ENV=prod mix ecto.migrate` `$ MIX_ENV=prod mix ecto.migrate`
Käynnistä pleroma-prosessi: Käynnistä akkoma-prosessi:
`$ MIX_ENV=prod mix compile` `$ MIX_ENV=prod mix compile`
@ -90,18 +90,18 @@ että kohta "uri" on "https://esimerkki.com".
Huom! Muista varmistaa että muuttuja MIX_ENV on "prod" mix-komentoja ajaessasi. Huom! Muista varmistaa että muuttuja MIX_ENV on "prod" mix-komentoja ajaessasi.
Mix lukee oikean konfiguraatiotiedoston sen mukaisesti. Mix lukee oikean konfiguraatiotiedoston sen mukaisesti.
Ohessa enimmäkseen toimivaksi todettu rc.d-skripti pleroman käynnistämiseen. Ohessa enimmäkseen toimivaksi todettu rc.d-skripti akkoman käynnistämiseen.
Kirjoita se tiedostoon /etc/rc.d/pleroma. Tämän jälkeen aja Kirjoita se tiedostoon /etc/rc.d/akkoma. Tämän jälkeen aja
`# chmod +x /etc/rc.d/pleroma`, ja voit käynnistää pleroman komennolla `# chmod +x /etc/rc.d/akkoma`, ja voit käynnistää akkoman komennolla
`# /etc/rc.d/pleroma start`. `# /etc/rc.d/akkoma start`.
``` ```
#!/bin/ksh #!/bin/ksh
#/etc/rc.d/pleroma #/etc/rc.d/akkoma
daemon="cd /home/pleroma/pleroma;MIX_ENV=prod /usr/local/bin/elixir" daemon="cd /home/akkoma/akkoma;MIX_ENV=prod /usr/local/bin/elixir"
daemon_flags="--detached /usr/local/bin/mix phx.server" daemon_flags="--detached /usr/local/bin/mix phx.server"
daemon_user="pleroma" daemon_user="akkoma"
rc_reload="NO" rc_reload="NO"
rc_bg="YES" rc_bg="YES"
@ -112,8 +112,8 @@ pexp="beam"
rc_cmd $1 rc_cmd $1
``` ```
Tämän jälkeen tarvitset enää HTTP-serverin välittämään kutsut pleroma-prosessille. Tämän jälkeen tarvitset enää HTTP-serverin välittämään kutsut akkoma-prosessille.
Tiedostosta `install/pleroma.nginx` löytyy esimerkkikonfiguraatio, ja TLS-sertifikaatit Tiedostosta `install/akkoma.nginx` löytyy esimerkkikonfiguraatio, ja TLS-sertifikaatit
saat ilmaiseksi esimerkiksi [letsencryptiltä](https://certbot.eff.org/lets-encrypt/opbsd-nginx.html). saat ilmaiseksi esimerkiksi [letsencryptiltä](https://certbot.eff.org/lets-encrypt/opbsd-nginx.html).
Nginx asentuu yksinkertaisesti komennolla `# pkg_add nginx`. Nginx asentuu yksinkertaisesti komennolla `# pkg_add nginx`.

View file

@ -2,7 +2,7 @@
{! backend/installation/otp_vs_from_source.include !} {! backend/installation/otp_vs_from_source.include !}
This guide covers a installation using an OTP release. To install Pleroma from source, please check out the corresponding guide for your distro. This guide covers a installation using an OTP release. To install Akkoma from source, please check out the corresponding guide for your distro.
## Pre-requisites ## Pre-requisites
* A machine running Linux with GNU (e.g. Debian, Ubuntu) or musl (e.g. Alpine) libc and `x86_64`, `aarch64` or `armv7l` CPU, you have root access to. If you are not sure if it's compatible see [Detecting flavour section](#detecting-flavour) below * A machine running Linux with GNU (e.g. Debian, Ubuntu) or musl (e.g. Alpine) libc and `x86_64`, `aarch64` or `armv7l` CPU, you have root access to. If you are not sure if it's compatible see [Detecting flavour section](#detecting-flavour) below
@ -23,7 +23,7 @@ If your platform is supported the output will contain the flavour string, you wi
### Installing the required packages ### Installing the required packages
Other than things bundled in the OTP release Pleroma depends on: Other than things bundled in the OTP release Akkoma depends on:
* curl (to download the release build) * curl (to download the release build)
* unzip (needed to unpack release builds) * unzip (needed to unpack release builds)
@ -104,62 +104,62 @@ Restart PostgreSQL to apply configuration changes:
systemctl restart postgresql systemctl restart postgresql
``` ```
### Installing Pleroma ### Installing Akkoma
```sh ```sh
# Create a Pleroma user # Create a Akkoma user
adduser --system --shell /bin/false --home /opt/pleroma pleroma adduser --system --shell /bin/false --home /opt/akkoma akkoma
# Set the flavour environment variable to the string you got in Detecting flavour section. # Set the flavour environment variable to the string you got in Detecting flavour section.
# For example if the flavour is `amd64-musl` the command will be # For example if the flavour is `amd64-musl` the command will be
export FLAVOUR="amd64-musl" export FLAVOUR="amd64-musl"
# Clone the release build into a temporary directory and unpack it # Clone the release build into a temporary directory and unpack it
su pleroma -s $SHELL -lc " su akkoma -s $SHELL -lc "
curl 'https://git.pleroma.social/api/v4/projects/2/jobs/artifacts/stable/download?job=$FLAVOUR' -o /tmp/pleroma.zip curl 'https://akkoma-updates.s3-website.fr-par.scw.cloud/develop/akkoma-$FLAVOUR.zip' -o /tmp/akkoma.zip
unzip /tmp/pleroma.zip -d /tmp/ unzip /tmp/akkoma.zip -d /tmp/
" "
# Move the release to the home directory and delete temporary files # Move the release to the home directory and delete temporary files
su pleroma -s $SHELL -lc " su akkoma -s $SHELL -lc "
mv /tmp/release/* /opt/pleroma mv /tmp/release/* /opt/akkoma
rmdir /tmp/release rmdir /tmp/release
rm /tmp/pleroma.zip rm /tmp/akkoma.zip
" "
# Create uploads directory and set proper permissions (skip if planning to use a remote uploader) # Create uploads directory and set proper permissions (skip if planning to use a remote uploader)
# Note: It does not have to be `/var/lib/pleroma/uploads`, the config generator will ask about the upload directory later # Note: It does not have to be `/var/lib/akkoma/uploads`, the config generator will ask about the upload directory later
mkdir -p /var/lib/pleroma/uploads mkdir -p /var/lib/akkoma/uploads
chown -R pleroma /var/lib/pleroma chown -R akkoma /var/lib/akkoma
# Create custom public files directory (custom emojis, frontend bundle overrides, robots.txt, etc.) # Create custom public files directory (custom emojis, frontend bundle overrides, robots.txt, etc.)
# Note: It does not have to be `/var/lib/pleroma/static`, the config generator will ask about the custom public files directory later # Note: It does not have to be `/var/lib/akkoma/static`, the config generator will ask about the custom public files directory later
mkdir -p /var/lib/pleroma/static mkdir -p /var/lib/akkoma/static
chown -R pleroma /var/lib/pleroma chown -R akkoma /var/lib/akkoma
# Create a config directory # Create a config directory
mkdir -p /etc/pleroma mkdir -p /etc/akkoma
chown -R pleroma /etc/pleroma chown -R akkoma /etc/akkoma
# Run the config generator # Run the config generator
su pleroma -s $SHELL -lc "./bin/pleroma_ctl instance gen --output /etc/pleroma/config.exs --output-psql /tmp/setup_db.psql" su akkoma -s $SHELL -lc "./bin/pleroma_ctl instance gen --output /etc/akkoma/config.exs --output-psql /tmp/setup_db.psql"
# Create the postgres database # Create the postgres database
su postgres -s $SHELL -lc "psql -f /tmp/setup_db.psql" su postgres -s $SHELL -lc "psql -f /tmp/setup_db.psql"
# Create the database schema # Create the database schema
su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate" su akkoma -s $SHELL -lc "./bin/pleroma_ctl migrate"
# If you have installed RUM indexes uncommend and run # If you have installed RUM indexes uncommend and run
# su pleroma -s $SHELL -lc "./bin/pleroma_ctl migrate --migrations-path priv/repo/optional_migrations/rum_indexing/" # su akkoma -s $SHELL -lc "./bin/pleroma_ctl migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
# Start the instance to verify that everything is working as expected # Start the instance to verify that everything is working as expected
su pleroma -s $SHELL -lc "./bin/pleroma daemon" su akkoma -s $SHELL -lc "./bin/pleroma daemon"
# Wait for about 20 seconds and query the instance endpoint, if it shows your uri, name and email correctly, you are configured correctly # Wait for about 20 seconds and query the instance endpoint, if it shows your uri, name and email correctly, you are configured correctly
sleep 20 && curl http://localhost:4000/api/v1/instance sleep 20 && curl http://localhost:4000/api/v1/instance
# Stop the instance # Stop the instance
su pleroma -s $SHELL -lc "./bin/pleroma stop" su akkoma -s $SHELL -lc "./bin/pleroma stop"
``` ```
### Setting up nginx and getting Let's Encrypt SSL certificaties ### Setting up nginx and getting Let's Encrypt SSL certificaties
@ -169,24 +169,24 @@ su pleroma -s $SHELL -lc "./bin/pleroma stop"
certbot certonly --standalone --preferred-challenges http -d yourinstance.tld certbot certonly --standalone --preferred-challenges http -d yourinstance.tld
``` ```
#### Copy Pleroma nginx configuration to the nginx folder #### Copy Akkoma nginx configuration to the nginx folder
The location of nginx configs is dependent on the distro The location of nginx configs is dependent on the distro
=== "Alpine" === "Alpine"
``` ```
cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/conf.d/pleroma.conf cp /opt/akkoma/installation/akkoma.nginx /etc/nginx/conf.d/akkoma.conf
``` ```
=== "Debian/Ubuntu" === "Debian/Ubuntu"
``` ```
cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/sites-available/pleroma.conf cp /opt/akkoma/installation/akkoma.nginx /etc/nginx/sites-available/akkoma.conf
ln -s /etc/nginx/sites-available/pleroma.conf /etc/nginx/sites-enabled/pleroma.conf ln -s /etc/nginx/sites-available/akkoma.conf /etc/nginx/sites-enabled/akkoma.conf
``` ```
If your distro does not have either of those you can append `include /etc/nginx/pleroma.conf` to the end of the http section in /etc/nginx/nginx.conf and If your distro does not have either of those you can append `include /etc/nginx/akkoma.conf` to the end of the http section in /etc/nginx/nginx.conf and
```sh ```sh
cp /opt/pleroma/installation/pleroma.nginx /etc/nginx/pleroma.conf cp /opt/akkoma/installation/akkoma.nginx /etc/nginx/akkoma.conf
``` ```
#### Edit the nginx config #### Edit the nginx config
@ -209,33 +209,33 @@ nginx -t
systemctl start nginx systemctl start nginx
``` ```
At this point if you open your (sub)domain in a browser you should see a 502 error, that's because Pleroma is not started yet. At this point if you open your (sub)domain in a browser you should see a 502 error, that's because Akkoma is not started yet.
### Setting up a system service ### Setting up a system service
=== "Alpine" === "Alpine"
``` ```
# Copy the service into a proper directory # Copy the service into a proper directory
cp /opt/pleroma/installation/init.d/pleroma /etc/init.d/pleroma cp /opt/akkoma/installation/init.d/akkoma /etc/init.d/akkoma
# Start pleroma and enable it on boot # Start akkoma and enable it on boot
rc-service pleroma start rc-service akkoma start
rc-update add pleroma rc-update add akkoma
``` ```
=== "Debian/Ubuntu" === "Debian/Ubuntu"
``` ```
# Copy the service into a proper directory # Copy the service into a proper directory
cp /opt/pleroma/installation/pleroma.service /etc/systemd/system/pleroma.service cp /opt/akkoma/installation/akkoma.service /etc/systemd/system/akkoma.service
# Start pleroma and enable it on boot # Start akkoma and enable it on boot
systemctl start pleroma systemctl start akkoma
systemctl enable pleroma systemctl enable akkoma
``` ```
If everything worked, you should see Pleroma-FE when visiting your domain. If that didn't happen, try reviewing the installation steps, starting Pleroma in the foreground and seeing if there are any errrors. If everything worked, you should see Akkoma-FE when visiting your domain. If that didn't happen, try reviewing the installation steps, starting Akkoma in the foreground and seeing if there are any errrors.
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC, you can also [file an issue on our Gitlab](https://git.pleroma.social/pleroma/pleroma-support/issues/new). Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC, you can also [file an issue on our Gitea](https://akkoma.dev/AkkomaGang/akkoma/issues).
## Post installation ## Post installation
@ -266,10 +266,10 @@ nginx -t
# Add it to the daily cron # Add it to the daily cron
echo '#!/bin/sh echo '#!/bin/sh
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --post-hook "rc-service nginx reload" certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --post-hook "rc-service nginx reload"
' > /etc/periodic/daily/renew-pleroma-cert ' > /etc/periodic/daily/renew-akkoma-cert
chmod +x /etc/periodic/daily/renew-pleroma-cert chmod +x /etc/periodic/daily/renew-akkoma-cert
# If everything worked the output should contain /etc/cron.daily/renew-pleroma-cert # If everything worked the output should contain /etc/cron.daily/renew-akkoma-cert
run-parts --test /etc/periodic/daily run-parts --test /etc/periodic/daily
``` ```
@ -284,17 +284,17 @@ nginx -t
# Add it to the daily cron # Add it to the daily cron
echo '#!/bin/sh echo '#!/bin/sh
certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx" certbot renew --cert-name yourinstance.tld --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
' > /etc/cron.daily/renew-pleroma-cert ' > /etc/cron.daily/renew-akkoma-cert
chmod +x /etc/cron.daily/renew-pleroma-cert chmod +x /etc/cron.daily/renew-akkoma-cert
# If everything worked the output should contain /etc/cron.daily/renew-pleroma-cert # If everything worked the output should contain /etc/cron.daily/renew-akkoma-cert
run-parts --test /etc/cron.daily run-parts --test /etc/cron.daily
``` ```
## Create your first user and set as admin ## Create your first user and set as admin
```sh ```sh
cd /opt/pleroma cd /opt/akkoma
su pleroma -s $SHELL -lc "./bin/pleroma_ctl user new joeuser joeuser@sld.tld --admin" su akkoma -s $SHELL -lc "./bin/pleroma_ctl user new joeuser joeuser@sld.tld --admin"
``` ```
This will create an account withe the username of 'joeuser' with the email address of joeuser@sld.tld, and set that user's account as an admin. This will result in a link that you can paste into the browser, which logs you in and enables you to set the password. This will create an account withe the username of 'joeuser' with the email address of joeuser@sld.tld, and set that user's account as an admin. This will result in a link that you can paste into the browser, which logs you in and enables you to set the password.
@ -304,4 +304,4 @@ This will create an account withe the username of 'joeuser' with the email addre
## Questions ## Questions
Questions about the installation or didnt it work as it should be, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC, you can also [file an issue on our Gitlab](https://git.pleroma.social/pleroma/pleroma-support/issues/new). If you encounter any issues or have questions regarding the install process, feel free to ask at [meta.akkoma.dev](https://meta.akkoma.dev/).

View file

@ -1,3 +1,3 @@
## OTP releases vs from-source installations ## OTP releases vs from-source installations
There are two ways to install Pleroma. You can use OTP releases or do a from-source installation. OTP releases are as close as you can get to binary releases with Erlang/Elixir. The release is self-contained, and provides everything needed to boot it, it is easily administered via the provided shell script to open up a remote console, start/stop/restart the release, start in the background, send remote commands, and more. With from source installations you install Pleroma from source, meaning you have to install certain dependencies like Erlang+Elixir and compile Pleroma yourself. There are two ways to install Akkoma. You can use OTP releases or do a from-source installation. OTP releases are as close as you can get to binary releases with Erlang/Elixir. The release is self-contained, and provides everything needed to boot it, it is easily administered via the provided shell script to open up a remote console, start/stop/restart the release, start in the background, send remote commands, and more. With from source installations you install Akkoma from source, meaning you have to install certain dependencies like Erlang+Elixir and compile Akkoma yourself.

View file

@ -1,9 +0,0 @@
# Installing on Yunohost
[YunoHost](https://yunohost.org) is a server operating system aimed at self-hosting. The YunoHost community maintains a package of Pleroma which allows you to install Pleroma on YunoHost. You can install it via the normal way through the admin web interface, or through the CLI. More information can be found at [the repo of the package](https://github.com/YunoHost-Apps/pleroma_ynh).
## Questions
Questions and problems related to the YunoHost parts can be done through the [regular YunoHost channels](https://yunohost.org/en/help).
For questions about Pleroma, ask in [#pleroma:libera.chat](https://matrix.to/#/#pleroma:libera.chat) via Matrix or **#pleroma** on **libera.chat** via IRC.