Ibis 0.3.3 - Minor fixes


Ibis is a federated encyclopedia with numerous features. If you want to start a wiki for a TV series, a videogame, or an open source project then Ibis is for you! You can register on an existing instance or install it on your own server. Then you can start editing on the topic of your choice, and connect to other Ibis instances for different topics. Federation ensures that articles get mirrored across many servers, and can be read even if the original instance goes down. Ibis is written in Rust and Webassembly, fully open source to make enshittification impossible.


This version includes some minor bug fixes and improvements, plus updated translations.

Changelog:
- Use jemalloc on x86 to reduce RAM usage
- Properly render international domain names
- Remove markdown max_width and fixed_indent
- Allow parenthesis in article title
- Update Dockerfile Debian version
- Show emoji indicator for dead instances


If you are interested what a federated wiki can do, join and give it a try. You can register on ibis.wiki, open.ibis.wiki or other instances. You can also install Ibis on your own server. It is very lightweight and can easily run on an existing server alongside other software. This release includes an additional installation method using Docker. To discuss the project, report problems or get support use the following links:

Lemmy | Matrix | Github


Setup Instructions


[!toc]

Native Installation


How to install Ibis on your server.
To get started you need a domain and a small Linux server with root access.
The following instructions are written for Debian.

Start by downloading the binary, installing dependencies and
setting up the database:

mkdir /srv/ibis
cd /srv/ibis
wget https://github.com/Nutomic/ibis/releases/latest/download/ibis.gz
gzip -d ibis.gz
chmod +x ibis
sudo apt install postgresql nginx certbot python3-certbot-nginx

# create postgres user and database
sudo -u postgres psql -c "CREATE USER ibis WITH PASSWORD 'my-password';" -U postgres
sudo -u postgres psql -c "CREATE DATABASE ibis WITH OWNER ibis;" -U postgres

Create a file config.toml with the following content:
# The domain where your ibis instance will be available
domain = "ibis.wiki"

[database]
# The database connection url. use the password set above
connection_url = "postgres://ibis:my-password@127.0.0.1:5432/ibis"

[setup]
# Username and password for the automatically created admin account. Important to set a secure password here, as password change functionality is not yet implemented. This section can be removed after first start.
admin_username = "ibis"
admin_password = "your-password"

See here
for all available config options.

Try running ./ibis to ensure that it starts without errors.

Create a new user for ibis for better security:

sudo /sbin/useradd --no-create-home --system ibis
sudo chown ibis:ibis . -R
sudo chmod 600 config.toml

Create systemd service file at /etc/systemd/system/ibis.service to run ibis:
[Unit]
Description=Ibis Federated Wiki
After=network.target

[Service]
Type=simple
User=ibis
Group=ibis
WorkingDirectory=/srv/ibis
ExecStart=/srv/ibis/ibis
Restart=on-failure
# change listen address
\#Environment=LEPTOS_SITE_ADDR=127.0.0.1:3000

[Install]
WantedBy=multi-user.target

Start the service with sudo systemctl start ibis.service and
ensure it was successful by running sudo systemctl status ibis.service.
You can also view the logs with sudo journalctl -u ibis.service.

Updating


Run the following commands in your installation folder.

wget https://github.com/Nutomic/ibis/releases/latest/download/ibis.gz
systemctl stop ibis
gzip -d -f ibis.gz
chmod +x ibis
systemctl start ibis

Docker Installation


Install the required packages (docker, docker-compose).
Then download the files:

wget https://raw.githubusercontent.com/Nutomic/ibis/refs/heads/master/docker/docker-compose.yml
wget https://raw.githubusercontent.com/Nutomic/ibis/refs/heads/master/docker/config.toml

Replace {} placeholders with actual values.
Then start it with docker compose up -d.
To make it accessible over the internet, setup a reverse proxy of your choice,
with TLS enabled.
For this you can follow the instructions in "Native Installation" section.

Updating


Change the version number in docker-compose.yml and run
docker compose up -d.

Reverse Proxy


No matter the installation method, we need to setup a reverse proxy now to
handle TLS and forward requests to Ibis. These instructions use Nginx, but
other options also work.

First we need to request the TLS certificate via
Let's Encrypt.
Replace with your actual domain and email in the command below.

sudo certbot certonly --nginx --agree-tos -d 'ibis.wiki' -m 'me@example.com'

You also need to setup a cronjob to refresh the TLS certificate.
For this run sudo crontab -e and add the following line with
your actual domain:
@daily certbot certonly --nginx -d ibis.wiki -n --deploy-hook 'nginx -s reload'

Finally create the nginx configuration file.
Again replace ibis.wiki with your actual domain.
server {
    listen 80;
    listen [::]:80;
    server_name ibis.wiki;
    server_tokens off;
    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }
    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name ibis.wiki;
    server_tokens off;
    ssl_certificate /etc/letsencrypt/live/ibis.wiki/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ibis.wiki/privkey.pem;

    location / {
      proxy_pass http://127.0.0.1:3000;
      proxy_http_version 1.1;
      proxy_set_header Host $host;
    }
}

If everything went well you can access Ibis through your browser now.
In case of problems you can join the Lemmy community
or Matrix chat for help.

Once it is working, checkout the [[Usage_Instructions@ibis.wiki]]

Update to Ibis 0.2


The config value bind has been removed.
Instead use the environment variable LEPTOS_SITE_ADDR, for example by
setting Environment=LEPTOS_SITE_ADDR=127.0.0.1:3000 in the systemd unit file.


Can I remote desktop into a Windows 11 system from Linux without using a full blown installation on a VM?


Is there a more lightweight solution? Like, some ssh frontend? I'd like to help my mom cleaning up her Windows computer because she's not very tech savvy. I can of course just screen share on some messaging app but it'd save so much time if I could have control.

I'm not going to be reacting to answers advising me to install a Windows esque distro on her computer.