diff --git a/.woodpecker.yml b/.woodpecker.yml index 1e4f09985..e0bc86a36 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -101,7 +101,7 @@ pipeline: - *tag-build - mix deps.get --only prod - mix release --path release - - zip akkoma-amd64.zip -r release + - zip akkoma-ubuntu-jammy.zip -r release release-ubuntu22: image: akkoma/releaser @@ -112,8 +112,8 @@ pipeline: - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-amd64.zip - /bin/sh /entrypoint.sh environment: - SOURCE: akkoma-amd64.zip - DEST: scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-amd64.zip + SOURCE: akkoma-ubuntu-jammy.zip + DEST: scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-ubuntu-jammy.zip debian-bullseye: image: elixir:1.13.4 @@ -138,7 +138,9 @@ pipeline: secrets: *scw-secrets commands: - export SOURCE=akkoma-amd64.zip - - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-debian-bullseye.zip + - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-amd64.zip + - /bin/sh /entrypoint.sh + - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-debian-stable.zip - /bin/sh /entrypoint.sh # Canonical amd64-musl diff --git a/CHANGELOG.md b/CHANGELOG.md index 98f434aaa..f5976a79d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed - quarantining is now considered absolutely; public activities are no longer an exception. +- flavours: + - amd64 is built for debian stable. Compatible with ubuntu 20. + - ubuntu-jammy is built for... well, ubuntu 22 (LTS) + - amd64-musl is built for alpine 3.16 ### Fixed - Updated mastoFE path, for the newer version diff --git a/docs/Makefile b/docs/Makefile index e51c1d188..022459cf0 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -5,3 +5,5 @@ install: pipenv install clean: rm -rf site +serve: + pipenv run python3 -m http.server -d site diff --git a/docs/docs/installation/debian_based_jp.md b/docs/docs/installation/debian_based_jp.md deleted file mode 100644 index ec829c903..000000000 --- a/docs/docs/installation/debian_based_jp.md +++ /dev/null @@ -1,188 +0,0 @@ -# Akkomaの入れ方 -## 日本語訳について - -この記事は [Installing on Debian based distributions](Installing on Debian based distributions) の日本語訳です。何かがおかしいと思ったら、原文を見てください。 - -## インストール - -このガイドはDebian Stretchを利用することを想定しています。Ubuntu 16.04や18.04でもおそらく動作します。また、ユーザはrootもしくはsudoにより管理者権限を持っていることを前提とします。もし、以下の操作をrootユーザで行う場合は、 `sudo` を無視してください。ただし、`sudo -Hu akkoma` のようにユーザを指定している場合には `su -s $SHELL -c 'command'` を代わりに使ってください。 - -### 必要なソフトウェア - -- PostgreSQL 9.6以上 (Ubuntu16.04では9.5しか提供されていないので,[](https://www.postgresql.org/download/linux/ubuntu/)こちらから新しいバージョンを入手してください) -- `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) をakkomaユーザーでインストールしてください) -- `erlang-dev` -- `erlang-nox` -- `git` -- `build-essential` -- `cmake` -- `libmagic-dev` - -#### このガイドで利用している追加パッケージ - -- `nginx` (おすすめです。他のリバースプロキシを使う場合は、参考となる設定をこのリポジトリから探してください) -- `certbot` (または何らかのLet's Encrypt向けACMEクライアント) -- `ImageMagick` -- `ffmpeg` -- `exiftool` - -### システムを準備する - -* まずシステムをアップデートしてください。 -``` -sudo apt update -sudo apt full-upgrade -``` - -* 上記に挙げたパッケージをインストールしておきます。 -``` -sudo apt install git build-essential postgresql postgresql-contrib cmake ffmpeg imagemagick libmagic-dev -``` - -### ElixirとErlangをインストールします - -* Erlangのリポジトリをダウンロードおよびインストールします。 -``` -wget -P /tmp/ https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb -sudo dpkg -i /tmp/erlang-solutions_2.0_all.deb -``` - -* ElixirとErlangをインストールします、 -``` -sudo apt update -sudo apt install elixir erlang-dev erlang-nox -``` - -### オプションパッケージ: [`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md) - -```shell -sudo apt install imagemagick ffmpeg libimage-exiftool-perl -``` - -### Akkoma BE (バックエンド) をインストールします - -* Akkoma用に新しいユーザーを作ります。 - -``` -sudo useradd -r -s /bin/false -m -d /var/lib/akkoma -U akkoma -``` - -**注意**: Akkomaユーザとして単発のコマンドを実行したい場合はは、`sudo -Hu akkoma command` を使ってください。シェルを使いたい場合は `sudo -Hu akkoma $SHELL`です。もし `sudo` を使わない場合は、rootユーザで `su -l akkoma -s $SHELL -c 'command'` とすることでコマンドを、`su -l akkoma -s $SHELL` とすることでシェルを開始できます。 - -* Gitリポジトリをクローンします。 -``` -sudo mkdir -p /opt/akkoma -sudo chown -R akkoma:akkoma /opt/akkoma -sudo -Hu akkoma git clone https://akkoma.dev/AkkomaGang/akkoma.git /opt/akkoma -``` - -* 新しいディレクトリに移動します。 -``` -cd /opt/akkoma -``` - -* Akkomaが依存するパッケージをインストールします。Hexをインストールしてもよいか聞かれたら、yesを入力してください。 -``` -sudo -Hu akkoma mix deps.get -``` - -* コンフィギュレーションを生成します。 -``` -sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen -``` - * rebar3をインストールしてもよいか聞かれたら、yesを入力してください。 - * このときにakkomaの一部がコンパイルされるため、この処理には時間がかかります。 - * あなたのインスタンスについて、いくつかの質問されます。この質問により `config/generated_config.exs` という設定ファイルが生成されます。 - - -* コンフィギュレーションを確認して、もし問題なければ、ファイル名を変更してください。 -``` -sudo -Hu akkoma mv config/{generated_config.exs,prod.secret.exs} -``` - -* 先程のコマンドで、すでに `config/setup_db.psql` というファイルが作られています。このファイルをもとに、データベースを作成します。 -``` -sudo -Hu akkoma MIX_ENV=prod mix pleroma.instance gen -``` - -* そして、データベースのマイグレーションを実行します。 -``` -sudo -Hu akkoma MIX_ENV=prod mix ecto.migrate -``` - -* これでAkkomaを起動できるようになりました。 -``` -sudo -Hu akkoma MIX_ENV=prod mix phx.server -``` - -### インストールの最終段階 - -あなたの新しいインスタンスを世界に向けて公開するには、nginx等のWebサーバやプロキシサーバをAkkomaの前段に使用する必要があります。また、Akkoma のためにシステムサービスファイルを作成する必要があります。 - -#### Nginx - -* まだインストールしていないなら、nginxをインストールします。 -``` -sudo apt install nginx -``` - -* SSLをセットアップします。他の方法でもよいですが、ここではcertbotを説明します。 -certbotを使うならば、まずそれをインストールします。 -``` -sudo apt install certbot -``` -そしてセットアップします。 -``` -sudo mkdir -p /var/lib/letsencrypt/ -sudo certbot certonly --email -d --standalone -``` -もしうまくいかないときは、nginxが正しく動いていない可能性があります。先にnginxを設定してください。ssl "on" を "off" に変えてから再試行してください。 - ---- - -* nginxの設定ファイルサンプルをnginxフォルダーにコピーします。 -``` -sudo cp /opt/akkoma/installation/nginx/akkoma.nginx /etc/nginx/sites-available/akkoma.nginx -sudo ln -s /etc/nginx/sites-available/akkoma.nginx /etc/nginx/sites-enabled/akkoma.nginx -``` - -* nginxを起動する前に、設定ファイルを編集してください。例えば、サーバー名、証明書のパスなどを変更する必要があります。 -* nginxを再起動します。 -``` -sudo systemctl enable --now nginx.service -``` - -もし証明書を更新する必要が出てきた場合には、nginxの関連するlocationブロックのコメントアウトを外し、以下のコマンドを動かします。 - -``` -sudo certbot certonly --email -d --webroot -w /var/lib/letsencrypt/ -``` - -#### 他のWebサーバやプロキシ -これに関してはサンプルが `/opt/akkoma/installation/` にあるので、探してみてください。 - -#### Systemd サービス - -* サービスファイルのサンプルをコピーします。 -``` -sudo cp /opt/akkoma/installation/akkoma.service /etc/systemd/system/akkoma.service -``` - -* サービスファイルを変更します。すべてのパスが正しいことを確認してください -* サービスを有効化し `akkoma.service` を開始してください -``` -sudo systemctl enable --now akkoma.service -``` - -#### 初期ユーザの作成 - -新たにインスタンスを作成したら、以下のコマンドにより管理者権限を持った初期ユーザを作成できます。 - -``` -sudo -Hu akkoma MIX_ENV=prod mix pleroma.user new --admin -``` - -#### その他の設定とカスタマイズ - -{! installation/further_reading.include !} diff --git a/docs/docs/installation/migrating_to_akkoma.md b/docs/docs/installation/migrating_to_akkoma.md index 181f6dae6..3947914ab 100644 --- a/docs/docs/installation/migrating_to_akkoma.md +++ b/docs/docs/installation/migrating_to_akkoma.md @@ -30,22 +30,18 @@ upstream git URL then just rebuild - that'll be: git remote set-url origin https://akkoma.dev/AkkomaGang/akkoma.git/ git fetch origin git pull -r +# or, if you're on an instance-specific branch, you may want +# to run "git merge stable" instead (or develop if you want) ``` Then compile, migrate and restart as usual. ## From OTP -**IMPORTANT: if you are using musl1.1 (void linux musl edition), -you will need to override the FLAVOUR to amd64-musl11, -also pls go shout at your maintainers to actually upgrade from EOL software.** - -the flavour to be - -This will just be setting the update URL - +This will just be setting the update URL - find your flavour from the [mapping on the install guide](../otp_en/#detecting-flavour) first. ```bash -export FLAVOUR=$(arch="$(uname -m)";if [ "$arch" = "x86_64" ];then arch="amd64";elif [ "$arch" = "armv7l" ];then arch="arm";elif [ "$arch" = "aarch64" ];then arch="arm64";else echo "Unsupported arch: $arch">&2;fi;if getconf GNU_LIBC_VERSION>/dev/null;then libc_postfix="";elif [ "$(ldd 2>&1|head -c 9)" = "musl libc" ];then libc_postfix="-musl";elif [ "$(find /lib/libc.musl*|wc -l)" ];then libc_postfix="-musl";else echo "Unsupported libc">&2;fi;echo "$arch$libc_postfix") +export FLAVOUR=[the flavour you found above] ./bin/pleroma_ctl update --zip-url https://akkoma-updates.s3-website.fr-par.scw.cloud/develop/akkoma-$FLAVOUR.zip ./bin/pleroma_ctl migrate diff --git a/docs/docs/installation/openbsd_fi.md b/docs/docs/installation/openbsd_fi.md deleted file mode 100644 index 4b51b9015..000000000 --- a/docs/docs/installation/openbsd_fi.md +++ /dev/null @@ -1,121 +0,0 @@ -# Akkoman asennus OpenBSD:llä - -Tarvitset: -* Oman domainin -* OpenBSD 6.3 -serverin -* Auttavan ymmärryksen unix-järjestelmistä - -Komennot, joiden edessä on '#', tulee ajaa käyttäjänä `root`. Tämä on -suositeltavaa tehdä komennon `doas` avulla, katso `doas (1)` ja `doas.conf (5)`. -Tästä eteenpäin oletuksena on, että domain "esimerkki.com" osoittaa -serverin IP-osoitteeseen. - -Jos asennuksen kanssa on ongelmia, IRC-kanava #pleroma Libera.chat tai -Matrix-kanava #pleroma:libera.chat ovat hyviä paikkoja löytää apua -(englanniksi), `/msg eal kukkuu` jos haluat välttämättä puhua härmää. - -Asenna tarvittava ohjelmisto: - -`# pkg_add git elixir gmake postgresql-server-10.3 postgresql-contrib-10.3 cmake ffmpeg ImageMagick` - -#### Optional software - -[`docs/installation/optional/media_graphics_packages.md`](../installation/optional/media_graphics_packages.md): - * ImageMagick - * ffmpeg - * exiftool - -Asenna tarvittava ohjelmisto: - -`# pkg_add ImageMagick ffmpeg p5-Image-ExifTool` - -Luo postgresql-tietokanta: - -`# su - _postgresql` - -`$ mkdir /var/postgresql/data` - -`$ initdb -D /var/postgresql/data -E UTF8` - -`$ createdb` - -Käynnistä tietokanta ja aseta se käynnistymään automaattisesti. - -`# rcctl start postgresql` - -`# rcctl enable postgresql` - -Luo käyttäjä akkomaa varten (kysyy muutaman kysymyksen): - -`# adduser akkoma` - -Vaihda akkoma-käyttäjään ja mene kotihakemistoosi: - -`# su - akkoma` - -Lataa akkoman lähdekoodi: - -`$ git clone https://akkoma.dev/AkkomaGang/akkoma.git` - -`$ cd akkoma` - -Asenna tarvittavat elixir-kirjastot: - -`$ mix deps.get` - -`$ mix deps.compile` - -Luo tarvittava konfiguraatio: - -`$ mix generate_config` - -`$ cp config/generated_config.exs config/prod.secret.exs` - -Aja luodut tietokantakomennot: - -`# su _postgres -c 'psql -f config/setup_db.psql'` - -`$ MIX_ENV=prod mix ecto.migrate` - -Käynnistä akkoma-prosessi: - -`$ MIX_ENV=prod mix compile` - -`$ MIX_ENV=prod mix phx.server` - -Tässä vaiheessa on hyvä tarkistaa että asetukset ovat oikein. Avaa selaimella, -curlilla tai vastaavalla työkalulla `esimerkki.com:4000/api/v1/instance` ja katso -että kohta "uri" on "https://esimerkki.com". - -Huom! Muista varmistaa että muuttuja MIX_ENV on "prod" mix-komentoja ajaessasi. -Mix lukee oikean konfiguraatiotiedoston sen mukaisesti. - -Ohessa enimmäkseen toimivaksi todettu rc.d-skripti akkoman käynnistämiseen. -Kirjoita se tiedostoon /etc/rc.d/akkoma. Tämän jälkeen aja -`# chmod +x /etc/rc.d/akkoma`, ja voit käynnistää akkoman komennolla -`# /etc/rc.d/akkoma start`. - -``` -#!/bin/ksh -#/etc/rc.d/akkoma - -daemon="cd /home/akkoma/akkoma;MIX_ENV=prod /usr/local/bin/elixir" -daemon_flags="--detached /usr/local/bin/mix phx.server" -daemon_user="akkoma" -rc_reload="NO" -rc_bg="YES" - -pexp="beam" - -. /etc/rc.d/rc.subr - -rc_cmd $1 -``` - -Tämän jälkeen tarvitset enää HTTP-serverin välittämään kutsut akkoma-prosessille. -Tiedostosta `install/akkoma.nginx` löytyy esimerkkikonfiguraatio, ja TLS-sertifikaatit -saat ilmaiseksi esimerkiksi [letsencryptiltä](https://certbot.eff.org/lets-encrypt/opbsd-nginx.html). -Nginx asentuu yksinkertaisesti komennolla `# pkg_add nginx`. - -Kun olet valmis, avaa https://esimerkki.com selaimessasi. Luo käyttäjä ja seuraa kiinnostavia -tyyppejä muilla palvelimilla! diff --git a/docs/docs/installation/otp_en.md b/docs/docs/installation/otp_en.md index e746bbac4..022716fec 100644 --- a/docs/docs/installation/otp_en.md +++ b/docs/docs/installation/otp_en.md @@ -15,12 +15,19 @@ While in theory OTP releases are possbile to install on any compatible machine, ### Detecting flavour -Paste the following into the shell: -```sh -arch="$(uname -m)";if [ "$arch" = "x86_64" ];then arch="amd64";elif [ "$arch" = "armv7l" ];then arch="arm";elif [ "$arch" = "aarch64" ];then arch="arm64";else echo "Unsupported arch: $arch">&2;fi;if getconf GNU_LIBC_VERSION>/dev/null;then libc_postfix="";elif [ "$(ldd 2>&1|head -c 9)" = "musl libc" ];then libc_postfix="-musl";elif [ "$(find /lib/libc.musl*|wc -l)" ];then libc_postfix="-musl";else echo "Unsupported libc">&2;fi;echo "$arch$libc_postfix" -``` +This is a little more complex than it used to be (thanks ubuntu) -If your platform is supported the output will contain the flavour string, you will need it later. If not, this just means that we don't build releases for your platform, you can still try installing from source. +Use the following mapping to figure out your flavour: + +| distribution | flavour | +| ------------- | ------------ | +| debian stable | amd64 | +| ubuntu focal | amd64 | +| ubuntu jammy | ubuntu-jammy | +| alpine | amd64-musl | + +Other similar distributions will _probably_ work, but if it is not listed above, there is no official +support. ### Installing the required packages