Dev.to WebDev 🛠 Dev 👁 0 📖 8 min read

How to Self-Host Your Own Discord-Like Community Server with Hooba

Most communication platforms work the same way: you create an account, join a community, and use infrastructure owned by someone else. But what if you want a private space for your friends or gaming community — one that

Most communication platforms work the same way: you create an account, join a community, and use infrastructure owned by someone else.

But what if you want a private space for your friends or gaming community — one that runs on a server you control?

That's the idea behind Hooba.

Hooba is a self-hosted communication platform inspired by Discord. It provides text channels, voice rooms for up to 8 people, and screen sharing — while allowing you to host the entire community on your own VPS.

In this guide, we'll deploy Hooba on a Linux VPS, configure HTTPS, create the first administrator account, and look at how to maintain the server.

No manual Docker configuration or database setup is required. Hooba comes with an installation script that handles most of the process.

GitHub: https://github.com/blackpiest/hooba-app

Website: https://hooba.space

1. What is Hooba?

Hooba is designed for small, private communities:

  • Groups of friends
  • Gaming communities and guilds
  • Private gaming clans
  • Small groups that want their own communication space

Each Hooba installation is an independent community with its own users, channels, and database.

Unlike a hosted communication service, Hooba runs on your own VPS. You control the machine and the data stored on it.

The platform includes:

  • Text channels with message editing and deletion
  • Voice channels with up to 8 participants
  • Screen sharing inside voice channels
  • Private and public channels
  • User roles and server administration
  • Browser and desktop clients for Windows and macOS

Hooba is not a replacement for every feature of Discord. Its purpose is more focused: give one community its own communication server with a familiar interface.

2. Server requirements

Before installing Hooba, you need a VPS.

The recommended operating systems are:

  • Ubuntu 22.04 or newer
  • Debian 12 or newer

Minimum requirements listed in the project documentation:

Resource Requirement
CPU A Linux VPS
RAM 2 GB minimum
Storage 10 GB minimum
Network Public IPv4 address
OS Ubuntu 22.04+ or Debian 12+

For a more comfortable setup with the full voice functionality, I recommend choosing a VPS with around 4 GB of RAM.

You don't need to install Docker, Git, or Certbot manually. The installation script can install the required dependencies.

Domain or IP address?

You have two options:

  1. Use your own domain, such as chat.example.com, with an A record pointing to your VPS.
  2. Access Hooba directly through the server's public IPv4 address.

A domain is optional. The installer supports HTTPS certificates for both domains and public IP addresses.

3. Connect to your VPS

After purchasing a VPS, your hosting provider will give you:

  • Server IP address
  • SSH username
  • Password or SSH authentication details

Open a terminal on your computer.

Windows: PowerShell

macOS / Linux: Terminal

Connect to your server:

ssh root@YOUR_SERVER_IP

Replace YOUR_SERVER_IP with the actual IP address of your VPS.

On the first connection, SSH will ask you to confirm the server fingerprint. Type yes, then enter your password if password authentication is enabled.

Once connected, you'll see a prompt similar to:

root@server:~#

You're now working directly on your VPS.

4. Install Hooba

The installation process is intentionally simple.

Run this command on your VPS:

bash <(curl -Ls https://raw.githubusercontent.com/blackpiest/hooba-app/main/install.sh)

The script will:

  1. Check the system and required tools.
  2. Install Git if it's missing.
  3. Download the Hooba repository into /opt/hooba.
  4. Install Docker if necessary.
  5. Check available memory and disk space.
  6. Start the interactive installation process.

If curl is not installed, install it first:

apt update && apt install -y curl

Configure your server address

The installer will ask how users should access your community.

Choose one of the following:

Option 1 — Domain

Enter a domain such as:

chat.example.com

Make sure its DNS A record points to your VPS public IP.

Option 2 — Public IP

You can also use your VPS IP address directly, without purchasing a domain.

The installer will then ask for an email address for Let's Encrypt notifications. This is optional.

Configure image storage

Hooba allows users to share images in text channels.

During installation, you'll be asked how much disk space to allocate for chat images. The default quota is 5 GiB.

When the quota reaches 80%, older images are automatically removed until usage drops to 70%.

Configure the firewall

The installer can configure UFW if it's available on your system.

However, many VPS providers have an additional firewall in their control panel. You must open the required ports there as well.

Port Protocol Purpose
80, 443 TCP Web application and HTTPS
3478 TCP + UDP Voice: TURN/STUN
5349 TCP Voice over TLS
40000–40100 TCP + UDP Voice connections
50000–50100 UDP TURN relay

If these ports are blocked by your hosting provider's firewall, the website or voice communication may not work correctly.

Wait for the installation to finish

The first installation builds the application and starts its Docker containers.

The initial build usually takes around 5–15 minutes, depending on your VPS and network connection.

The installer also configures:

  • HTTPS certificates through Let's Encrypt
  • Automatic certificate renewal
  • Docker startup after system reboot
  • Optional nightly database backups
  • A command-line management tool

When everything is ready, the installer will display the server address and setup token.

5. Create your community

Open the setup address in your browser:

https://YOUR_DOMAIN_OR_IP/setup

You'll need the setup token printed by the installer.

It is also saved in:

/opt/hooba/logs/owner-summary.txt

Enter the token, create your owner account, and choose a name for your community.

That's it — your Hooba server is ready.

You can now create channels, configure permissions, and invite other people.

6. Invite your friends

Hooba uses an invitation-based registration system.

The server administrator creates invitation codes and shares them with the people who should join the community.

Each invited user creates their own username and password on your server.

There is no need for a Discord, Google, or Telegram account.

Users can connect through:

  • A web browser
  • The Hooba desktop application for Windows and macOS

Desktop users enter the address of their Hooba server before signing in.

Each installation is independent, so accounts are not shared between different Hooba servers.

7. How the infrastructure works

Hooba uses Docker Compose to run its server components.

The production deployment consists of four main services:

Service Responsibility
Nginx Serves the web application, handles HTTPS, and proxies API and WebSocket traffic
Backend Runs the application API, authentication, real-time communication, and voice signaling
PostgreSQL Stores users, channels, messages, and other application data
Coturn Provides TURN connectivity for voice communication

The backend uses Node.js and Fastify. PostgreSQL is accessed through Prisma.

Voice communication is powered by mediasoup, which acts as an SFU (Selective Forwarding Unit).

Instead of sending every participant's audio stream directly to every other participant, the SFU receives and forwards media streams.

The voice server runs on your VPS, and a voice room supports up to 8 participants.

This architecture keeps the deployment self-contained: the application, database, and voice infrastructure run on the server you control.

8. Manage your server

After installation, Hooba adds a command-line utility:

hooba

You can run it from any directory on your VPS.

Running the command without arguments opens an interactive menu where you can check the server, start or stop it, update the application, view logs, and manage backups.

You can also execute individual commands.

Check server status

hooba status

Displays container status, backend availability, certificate expiration, free disk space, image quota, and backup information.

Update Hooba

hooba update

Downloads the latest version from the Git repository, creates a database backup, rebuilds the application, and restarts the services.

If an update doesn't work correctly, you can use:

hooba rollback

The rollback mechanism restores the previous application version and the database backup created before the update.

Restart or repair the server

hooba repair

Recreates the containers without deleting application data.

View logs

hooba logs

You can also inspect an individual service:

hooba logs backend
hooba logs web
hooba logs postgres
hooba logs coturn

Troubleshoot voice connections

hooba voice-check

This command checks the voice server, network configuration, and connection attempts.

It can also perform a short network traffic check while a participant joins a voice channel. The resulting report helps identify whether voice packets are reaching the server.

Change image storage quota

For example, to allocate 10 GiB:

hooba uploads-quota 10

9. Backups: don't skip this

Your community data is stored on your VPS. If the machine fails, local backups stored on the same machine may be lost too.

Create a backup manually:

hooba backup

A backup includes:

  • PostgreSQL database dump
  • Server configuration (.env.prod)
  • Chat image storage archive

Backups are stored in:

/opt/hooba/backups

During installation, you can also enable automatic nightly database backups. The script keeps the 14 most recent automatic database backups.

Important: backups stored on the VPS are not enough on their own. Download them to another machine or storage location regularly.

For example, from your local computer:

scp -r root@YOUR_SERVER_IP:/opt/hooba/backups .

You should also keep a separate copy of the environment file:

scp root@YOUR_SERVER_IP:/opt/hooba/infra/docker/.env.prod .

This file contains database credentials and other secrets. Keep it private.

Without the original environment file, you won't be able to restore the database backup on another server using the original database credentials.

10. A few things to keep in mind

Self-hosting gives you control over the infrastructure, but it also means you're responsible for maintaining it.

With Hooba:

  • You pay for and manage your own VPS.
  • Your community data is stored on your server.
  • You are responsible for keeping backups somewhere safe.
  • You need to maintain access to your domain and server.
  • The server owner controls the machine and can access its stored data.

Hooba is released under the GNU AGPL-3.0 license.

If you modify Hooba and make that modified version available to other people over a network, the license requires you to provide access to the corresponding source code under the same license terms.

The Hooba name and logo are not covered by that license.

Conclusion

Setting up your own communication server doesn't have to involve manually configuring databases, reverse proxies, certificates, and voice infrastructure.

With Hooba, most of that work is handled by a single installation script.

You get a private community space with text channels, voice communication, and screen sharing — running on infrastructure you control.

One server. One community. Your rules.

Useful links

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.