Iceshrimp Fediverse Instance
I am running Iceshrimp as my fediverse instance. Iceshrimp as a Misskey clone that has the advantage to support the Mastodon client API. This allows to use many clients that are developed for Mastodon. Including my favorite client Mona.
Install Iceshrimp
Note
For details on how to install Iceshrimp, please refer to Installing Iceshrimp with Docker. The description is maintainer by the Iceshrimp development team. Basically all I did is following those instructions.
All I did was following the instructions provided by the Iceshrimp team.
Nevertheless I changed some settings in the .config/default.yml
file:
Since I do have limited space I activated the media cleanup settings:
# Media cleanup settings (defaults: false, 0, false, false)
mediaCleanup:
cron: true
maxAgeDays: 21
cleanAvatars: false
cleanHeaders: false
Media shared in the Fediverse are cached on the local server.
To avoid having to provide too much storage space I activated the mediaCleanup
entry.
With this settings a cron job purges all cached media that are older then three weeks.
Avatar pictures and profile headers are kept.
Caddy Setup
Iceshrimp is providing the webpage at port 3000.
To make the service publicly available Caddy needs to be configured with an additional entry in its Caddyfile.
I assume you have created the domain iceshrimp.example.com
that can be used for providing the Iceshrimp on the internet.
Note
For a detailed documentation pleaser refer to the Caddy website.
Now you need to add following lines in the file /etc/caddy/Caddyfile
:
iceshrimp.example.com {
reverse_proxy localhost:3000
}
With following commands Caddy will read the new configuration and you can check for the status:
cd /etc/caddy
sudo caddy reload
sudo service caddy status
Caddy will provide the Iceshrimp GUI as website with the address https://iceshrimp.example.com. An SSL certificate will be assigned and updated automatically.
Post Install
Note
Also here, the Iceshrimp development team has provided Post Install documentation that you can follow.
Translation Service
Enable Lingva
Iceshrimp is supporting DeepL and Libre Translate as translation services. I started using the Adminforge Libre Translate server as described in the Libre Translate section below.
The Adminforge’s Lingva server provides much better results but unfortunately Iceshrimp does not directly support its API. What I did is writing a small translation server, that partly implements the Libre Translate API and forwards it to Lingva. You can find the source code here: libre-to-lingva (sorry, for this uncreative name).
Then you need to extend the docker-compose.yml
file and do a small change in the .config/default.yml
file.
In docker-compose.yml
enter the following lines under services:
:
services:
lingva:
restart: unless-stopped
image: codeberg.org/wertarbyte/libre-to-lingva:latest
container_name: iceshrimp_lingva
networks:
ishnet:
ipv4_address: 192.168.100.100
networks:
ishnet:
ipam:
config:
- subnet: 192.168.100.0/24
Note
I can only provide a linux/amd64
packet as I do not have and ARM development environment.
If you need another type of packet you need to build it your own.
The build.sh
script in the Codeberg repository can support you to do so.
Iceshrimp is blocking private IPs by default to protect against Server-Side Request Forgery (SSRF).
To allow the Lingva service to be used, uncomment and change the the following section in the .config/default.yml
file.
allowedPrivateNetworks: [
"192.168.100.100/32"
]
Note
The changes in docker-compose.yml
’s network statements is necessary to provide the lingva
service with a fixed IP address.
This fixed IP address can then be allowed in the allowedPrivateNetworks
section of .config/default.yml
.
When you run Iceshrimp as a service without docker, then just uncomment the statement and do not change it.
allowedPrivateNetworks: [
'127.0.0.1/32'
]
The last step is to make Iceshrimp to use this service.
To do so, just enter this URL in the Libre Translate settings: http://lingva:5000/translate
.
Libre Translate
I used the free Libre Translate service of Adminforge.
Just enter this URL in the Libre Translate setting: https://translate.adminforge.de/translate
.
Object Storage
I have also set up an Object Storage (S3) which is described in a separate chapter of this server. Without S3, Iceshrimp shows issues of movie playback under iOS.
Outlook to Iceshrimp.NET
The Iceshrimp team is working on a rewrite of Iceshrimp which is using C# instead of typed Java Script. The project is maintained here: Iceshrimp.NET. My plan is to move to Iceshrimp.NET as soon as the project has matured.