add "Adding another admin section" to post-install.md, and cosmetics

This commit is contained in:
Jeder 2023-08-13 16:52:57 +02:00 committed by Laura Hausmann
parent add137af0b
commit 86cc1927e5
No known key found for this signature in database
GPG key ID: D044E84C5BE01605
2 changed files with 44 additions and 1 deletions

View file

@ -1,15 +1,18 @@
# Installing Iceshrimp # Installing Iceshrimp
This document will guide you through manual installation of Iceshrimp on dev branch, for main branch, use Firefish's installation guide. This document will guide you through manual installation of Iceshrimp on dev branch, for main branch, use Firefish's installation guide.
## Dependencies ## Dependencies
### Build ### Build
- **Rust** 1.68+ - **Rust** 1.68+
- C/C++ compiler like **GCC** or **Clang** - C/C++ compiler like **GCC** or **Clang**
- Build tools like **make** - Build tools like **make**
- **Python 3** - **Python 3**
### Required ### Required
- [**Node.js**](https://nodejs.org) v18.16.0+ (v20 recommended) - [**Node.js**](https://nodejs.org) v18.16.0+ (v20 recommended)
- [**PostgreSQL**](https://www.postgresql.org/) 12+ - [**PostgreSQL**](https://www.postgresql.org/) 12+
- [**Redis**](https://redis.io/) 6+ - [**Redis**](https://redis.io/) 6+
@ -19,6 +22,7 @@ This document will guide you through manual installation of Iceshrimp on dev bra
- Caddy - Caddy
### Optional ### Optional
- [**FFmpeg**](https://ffmpeg.org/) for video transcoding - [**FFmpeg**](https://ffmpeg.org/) for video transcoding
- Full text search (Choose one) - Full text search (Choose one)
Iceshrimp has full text search powered by Postgres by default, however it's very slow, and these are alternatives for that Iceshrimp has full text search powered by Postgres by default, however it's very slow, and these are alternatives for that
@ -33,21 +37,25 @@ This document will guide you through manual installation of Iceshrimp on dev bra
## Preparations ## Preparations
### Download repository ### Download repository
```sh ```sh
git clone https://iceshrimp.dev/iceshrimp/iceshrimp git clone https://iceshrimp.dev/iceshrimp/iceshrimp
``` ```
### Creating a new user ### Creating a new user
In case you want to run Iceshrimp as a different user, run `adduser --disabled-password --disabled-login iceshrimp` In case you want to run Iceshrimp as a different user, run `adduser --disabled-password --disabled-login iceshrimp`
Following steps will require you to run them as the user you have made, so use `su - iceshrimp`, or `sudo -iu iceshrimp`, or whatever else method in order to temporarily log in as that user. Following steps will require you to run them as the user you have made, so use `su - iceshrimp`, or `sudo -iu iceshrimp`, or whatever else method in order to temporarily log in as that user.
### Configuration ### Configuration
- Copy `.config/example.yml` to `.config/default.yml` - Copy `.config/example.yml` to `.config/default.yml`
- Edit `.config/default.yml` with text editor - Edit `.config/default.yml` with text editor
- Make sure to set PostgreSQL and Redis section correctly - Make sure to set PostgreSQL and Redis section correctly
- Make sure to set/uncomment caching server and/or text search sections if you have chosen to set up these - Make sure to set/uncomment caching server and/or text search sections if you have chosen to set up these
## Installing project dependencies ## Installing project dependencies
```sh ```sh
corepack enable corepack enable
corepack prepare yarn@stable --activate corepack prepare yarn@stable --activate
@ -56,11 +64,14 @@ yarn
<!--TODO: Find out a way to do no-optional (no tensorflow) install on yarn berry, so far I have found none--> <!--TODO: Find out a way to do no-optional (no tensorflow) install on yarn berry, so far I have found none-->
## Building Iceshrimp ## Building Iceshrimp
```sh ```sh
yarn build yarn build
``` ```
## Database ## Database
### Creating database ### Creating database
This will create a postgres user with your password and database, while also granting that user all privileges on database. This will create a postgres user with your password and database, while also granting that user all privileges on database.
Using `psql` prompt: Using `psql` prompt:
```sh ```sh
@ -74,19 +85,23 @@ grant all privileges on database iceshrimp to iceshrimp;
``` ```
### First migration ### First migration
In order for Iceshrimp to work properly, you need to initialise the database using In order for Iceshrimp to work properly, you need to initialise the database using
```bash ```bash
yarn run init yarn run init
``` ```
## Setting up Webproxy ## Setting up Webproxy
### Nginx ### Nginx
- Run `sudo cp docs/examples/iceshrimp.nginx.conf /etc/nginx/sites-available/ && cd /etc/nginx/sites-available/` - Run `sudo cp docs/examples/iceshrimp.nginx.conf /etc/nginx/sites-available/ && cd /etc/nginx/sites-available/`
- Edit `iceshrimp.nginx.conf` to reflect your server properly - Edit `iceshrimp.nginx.conf` to reflect your server properly
- Run `sudo ln -s ./iceshrimp.nginx.conf ../sites-enabled/iceshrimp.nginx.conf` - Run `sudo ln -s ./iceshrimp.nginx.conf ../sites-enabled/iceshrimp.nginx.conf`
- Run `sudo nginx -t` to check that the config is valid, then restart the nginx service. - Run `sudo nginx -t` to check that the config is valid, then restart the nginx service.
### Caddy ### Caddy
- Add the following to your Caddyfile, and replace `example.com` with your domain - Add the following to your Caddyfile, and replace `example.com` with your domain
``` ```
example.com { example.com {
@ -97,11 +112,13 @@ example.com {
## Running Iceshrimp ## Running Iceshrimp
### Running manually ### Running manually
- Start Iceshrimp by running `NODE_ENV=production yarn run start`. - Start Iceshrimp by running `NODE_ENV=production yarn run start`.
If this is your first run, after Iceshrimp has started successfully, you'll be able to go to the URL you have specified in `.config/default.yml` and create first user. If this is your first run, after Iceshrimp has started successfully, you'll be able to go to the URL you have specified in `.config/default.yml` and create first user.
- To stop the server, use `Ctrl-C`. - To stop the server, use `Ctrl-C`.
### Running using systemd ### Running using systemd
- Run `sudo cp docs/examples/iceshrimp.service /etc/systemd/system/` - Run `sudo cp docs/examples/iceshrimp.service /etc/systemd/system/`
- Edit `/etc/systemd/system/iceshrimp.service` with text editor, and change `User`, `WorkingDir`, `ExecStart` if necessary. - Edit `/etc/systemd/system/iceshrimp.service` with text editor, and change `User`, `WorkingDir`, `ExecStart` if necessary.
- Run `sudo systemctl daemon-reload` - Run `sudo systemctl daemon-reload`
@ -109,6 +126,7 @@ If this is your first run, after Iceshrimp has started successfully, you'll be a
- (Optional) Check if instance is running using `sudo systemctl status iceshrimp` - (Optional) Check if instance is running using `sudo systemctl status iceshrimp`
### Updating Iceshrimp ### Updating Iceshrimp
Shut down Iceshrimp and then run these commands Shut down Iceshrimp and then run these commands
```sh ```sh
@ -123,4 +141,5 @@ yarn build && yarn migrate
Start Iceshrimp back up Start Iceshrimp back up
## Post-install ## Post-install
See [post-install](post-install.md). See [post-install](post-install.md).

View file

@ -1,30 +1,54 @@
# Post-install # Post-install
This document describes things you can do after successfully installing Iceshrimp. This document describes things you can do after successfully installing Iceshrimp.
## Automatic translation ## Automatic translation
### DeepL ### DeepL
- Create a Free or Pro API account on [DeepL's website](https://www.deepl.com/pro#developer) - Create a Free or Pro API account on [DeepL's website](https://www.deepl.com/pro#developer)
- Copy the API key to Control Panel > General > DeepL Translation - Copy the API key to Control Panel > General > DeepL Translation
- Check the "Pro account" switch if you registered for paid account - Check the "Pro account" switch if you registered for paid account
### LibreTranslate ### LibreTranslate
- Install [LibreTranslate](https://libretranslate.com/) - Install [LibreTranslate](https://libretranslate.com/)
- Get an API URL and API key, copy and paste them into Control Panel > General > Libre Translate - Get an API URL and API key, copy and paste them into Control Panel > General > Libre Translate
## Enabling push notifications ## Enabling push notifications
- Run `npx web-push generate-vapid-keys` - Run `npx web-push generate-vapid-keys`
- `docker compose exec web npx web-push generate-vapid-keys` if using Docker Compose - Docker Compose users: `docker compose exec web npx web-push generate-vapid-keys`
- Put public and private keys into Control Panel > General > Service Worker - Put public and private keys into Control Panel > General > Service Worker
## Object Storage (S3) ## Object Storage (S3)
Recommended if using Docker Recommended if using Docker
- Set up a bucket on provider's website (for example: AWS, Backblaze B2, Wasabi, minio or Google Cloud) - Set up a bucket on provider's website (for example: AWS, Backblaze B2, Wasabi, minio or Google Cloud)
- Go to Control Panel > Object Storage and follow instructions - Go to Control Panel > Object Storage and follow instructions
## Customising assets, locale ## Customising assets, locale
- To add custom CSS for all users, edit `custom/assets/instance.css`. - To add custom CSS for all users, edit `custom/assets/instance.css`.
- To add static assets (such as images for the splash screen), place them in the `custom/assets/` directory. They'll then be available on https://example.com/static-assets/filename.ext. - To add static assets (such as images for the splash screen), place them in the `custom/assets/` directory. They'll then be available on https://example.com/static-assets/filename.ext.
- To add custom locales, place them in the `custom/locales/` directory. If you name your custom locale the same as an existing locale, it will overwrite it. If you give it a unique name, it will be added to the list. Also make sure that the first part of the filename matches the locale you're basing it on. (Example: en-FOO.yml) - To add custom locales, place them in the `custom/locales/` directory. If you name your custom locale the same as an existing locale, it will overwrite it. If you give it a unique name, it will be added to the list. Also make sure that the first part of the filename matches the locale you're basing it on. (Example: en-FOO.yml)
- To add custom error images, place them in the `custom/assets/badges` directory, replacing the files already there. - To add custom error images, place them in the `custom/assets/badges` directory, replacing the files already there.
- To add custom sounds, place only mp3 files in the `custom/assets/sounds` directory. - To add custom sounds, place only mp3 files in the `custom/assets/sounds` directory.
- To update custom assets without rebuilding, just run `yarn run gulp`. - To update custom assets without rebuilding, just run `yarn run gulp`.
## Another admin account
- Go to desired user's page, click 3 dots in upper right corner > About > Moderation, turn on "Moderator"
- Go back to Overview and copy their ID
- Run `psql -d iceshrimp`, replace `iceshrimp` with a name of your database if needed
- If instance is ran by a different system user: Prepend that command with `sudo -U iceshrimp`, replace `iceshrimp` with a name of that user if needed
- Docker Compose users: `docker compose exec db psql -d iceshrimp -U iceshrimp`, replace both `iceshrimp` with name of your db, and username owning that db respectively, if needed
- Run `UPDATE "user" SET "isAdmin" = true WHERE id='999999';`, where `999999` is the copied ID of that user
- Restart your Iceshrimp server
### Removing admin privileges
- Get ID of the user
- Run `psql` the same way when adding admin
- Run `UPDATE "user" SET "isAdmin" = false WHERE id='999999';`, where `999999` is the copied ID of that user
- Restart your Iceshrimp server
- Remove moderator privileges of the user