<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Egor</title>
    <description>The latest articles on DEV Community by Egor (@efgor).</description>
    <link>https://dev.to/efgor</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1354621%2Ffca583ae-ebf6-45ce-b48b-402cde9ee832.jpg</url>
      <title>DEV Community: Egor</title>
      <link>https://dev.to/efgor</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/efgor"/>
    <language>en</language>
    <item>
      <title>How to Self-Host Your Own Discord-Like Community Server with Hooba</title>
      <dc:creator>Egor</dc:creator>
      <pubDate>Mon, 09 Nov 2026 13:27:49 +0000</pubDate>
      <link>https://dev.to/efgor/how-to-self-host-your-own-discord-like-community-server-with-hooba-38pi</link>
      <guid>https://dev.to/efgor/how-to-self-host-your-own-discord-like-community-server-with-hooba-38pi</guid>
      <description>&lt;p&gt;Most communication platforms work the same way: you create an account, join a community, and use infrastructure owned by someone else.&lt;/p&gt;

&lt;p&gt;But what if you want a private space for your friends or gaming community — one that runs on a server you control?&lt;/p&gt;

&lt;p&gt;That's the idea behind &lt;strong&gt;Hooba&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No manual Docker configuration or database setup is required.&lt;/strong&gt; Hooba comes with an installation script that handles most of the process.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/blackpiest/hooba-app" rel="noopener noreferrer"&gt;https://github.com/blackpiest/hooba-app&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Website: &lt;a href="https://hooba.space" rel="noopener noreferrer"&gt;https://hooba.space&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1. What is Hooba?
&lt;/h2&gt;

&lt;p&gt;Hooba is designed for small, private communities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Groups of friends&lt;/li&gt;
&lt;li&gt;Gaming communities and guilds&lt;/li&gt;
&lt;li&gt;Private gaming clans&lt;/li&gt;
&lt;li&gt;Small groups that want their own communication space&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each Hooba installation is an independent community with its own users, channels, and database.&lt;/p&gt;

&lt;p&gt;Unlike a hosted communication service, Hooba runs on your own VPS. You control the machine and the data stored on it.&lt;/p&gt;

&lt;p&gt;The platform includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text channels with message editing and deletion&lt;/li&gt;
&lt;li&gt;Voice channels with up to 8 participants&lt;/li&gt;
&lt;li&gt;Screen sharing inside voice channels&lt;/li&gt;
&lt;li&gt;Private and public channels&lt;/li&gt;
&lt;li&gt;User roles and server administration&lt;/li&gt;
&lt;li&gt;Browser and desktop clients for Windows and macOS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;
&lt;h2&gt;
  
  
  2. Server requirements
&lt;/h2&gt;

&lt;p&gt;Before installing Hooba, you need a VPS.&lt;/p&gt;

&lt;p&gt;The recommended operating systems are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ubuntu 22.04 or newer&lt;/li&gt;
&lt;li&gt;Debian 12 or newer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Minimum requirements listed in the project documentation:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Resource&lt;/th&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CPU&lt;/td&gt;
&lt;td&gt;A Linux VPS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAM&lt;/td&gt;
&lt;td&gt;2 GB minimum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage&lt;/td&gt;
&lt;td&gt;10 GB minimum&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network&lt;/td&gt;
&lt;td&gt;Public IPv4 address&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS&lt;/td&gt;
&lt;td&gt;Ubuntu 22.04+ or Debian 12+&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a more comfortable setup with the full voice functionality, I recommend choosing a VPS with around &lt;strong&gt;4 GB of RAM&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You don't need to install Docker, Git, or Certbot manually. The installation script can install the required dependencies.&lt;/p&gt;
&lt;h3&gt;
  
  
  Domain or IP address?
&lt;/h3&gt;

&lt;p&gt;You have two options:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use your own domain, such as &lt;code&gt;chat.example.com&lt;/code&gt;, with an A record pointing to your VPS.&lt;/li&gt;
&lt;li&gt;Access Hooba directly through the server's public IPv4 address.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A domain is optional. The installer supports HTTPS certificates for both domains and public IP addresses.&lt;/p&gt;
&lt;h2&gt;
  
  
  3. Connect to your VPS
&lt;/h2&gt;

&lt;p&gt;After purchasing a VPS, your hosting provider will give you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Server IP address&lt;/li&gt;
&lt;li&gt;SSH username&lt;/li&gt;
&lt;li&gt;Password or SSH authentication details&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open a terminal on your computer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt; PowerShell&lt;br&gt;&lt;br&gt;
&lt;strong&gt;macOS / Linux:&lt;/strong&gt; Terminal&lt;/p&gt;

&lt;p&gt;Connect to your server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh root@YOUR_SERVER_IP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;YOUR_SERVER_IP&lt;/code&gt; with the actual IP address of your VPS.&lt;/p&gt;

&lt;p&gt;On the first connection, SSH will ask you to confirm the server fingerprint. Type &lt;code&gt;yes&lt;/code&gt;, then enter your password if password authentication is enabled.&lt;/p&gt;

&lt;p&gt;Once connected, you'll see a prompt similar to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;root@server:~#
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You're now working directly on your VPS.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Install Hooba
&lt;/h2&gt;

&lt;p&gt;The installation process is intentionally simple.&lt;/p&gt;

&lt;p&gt;Run this command on your VPS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bash &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;curl &lt;span class="nt"&gt;-Ls&lt;/span&gt; https://raw.githubusercontent.com/blackpiest/hooba-app/main/install.sh&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The script will:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check the system and required tools.&lt;/li&gt;
&lt;li&gt;Install Git if it's missing.&lt;/li&gt;
&lt;li&gt;Download the Hooba repository into &lt;code&gt;/opt/hooba&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Install Docker if necessary.&lt;/li&gt;
&lt;li&gt;Check available memory and disk space.&lt;/li&gt;
&lt;li&gt;Start the interactive installation process.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If &lt;code&gt;curl&lt;/code&gt; is not installed, install it first:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; curl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configure your server address
&lt;/h3&gt;

&lt;p&gt;The installer will ask how users should access your community.&lt;/p&gt;

&lt;p&gt;Choose one of the following:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 1 — Domain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Enter a domain such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chat.example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure its DNS A record points to your VPS public IP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 2 — Public IP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can also use your VPS IP address directly, without purchasing a domain.&lt;/p&gt;

&lt;p&gt;The installer will then ask for an email address for Let's Encrypt notifications. This is optional.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure image storage
&lt;/h3&gt;

&lt;p&gt;Hooba allows users to share images in text channels.&lt;/p&gt;

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

&lt;p&gt;When the quota reaches 80%, older images are automatically removed until usage drops to 70%.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure the firewall
&lt;/h3&gt;

&lt;p&gt;The installer can configure UFW if it's available on your system.&lt;/p&gt;

&lt;p&gt;However, many VPS providers have an additional firewall in their control panel. You must open the required ports there as well.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Port&lt;/th&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;80, 443&lt;/td&gt;
&lt;td&gt;TCP&lt;/td&gt;
&lt;td&gt;Web application and HTTPS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3478&lt;/td&gt;
&lt;td&gt;TCP + UDP&lt;/td&gt;
&lt;td&gt;Voice: TURN/STUN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5349&lt;/td&gt;
&lt;td&gt;TCP&lt;/td&gt;
&lt;td&gt;Voice over TLS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;40000–40100&lt;/td&gt;
&lt;td&gt;TCP + UDP&lt;/td&gt;
&lt;td&gt;Voice connections&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;50000–50100&lt;/td&gt;
&lt;td&gt;UDP&lt;/td&gt;
&lt;td&gt;TURN relay&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If these ports are blocked by your hosting provider's firewall, the website or voice communication may not work correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wait for the installation to finish
&lt;/h3&gt;

&lt;p&gt;The first installation builds the application and starts its Docker containers.&lt;/p&gt;

&lt;p&gt;The initial build usually takes around &lt;strong&gt;5–15 minutes&lt;/strong&gt;, depending on your VPS and network connection.&lt;/p&gt;

&lt;p&gt;The installer also configures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTPS certificates through Let's Encrypt&lt;/li&gt;
&lt;li&gt;Automatic certificate renewal&lt;/li&gt;
&lt;li&gt;Docker startup after system reboot&lt;/li&gt;
&lt;li&gt;Optional nightly database backups&lt;/li&gt;
&lt;li&gt;A command-line management tool&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When everything is ready, the installer will display the server address and setup token.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Create your community
&lt;/h2&gt;

&lt;p&gt;Open the setup address in your browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://YOUR_DOMAIN_OR_IP/setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll need the setup token printed by the installer.&lt;/p&gt;

&lt;p&gt;It is also saved in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/hooba/logs/owner-summary.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enter the token, create your owner account, and choose a name for your community.&lt;/p&gt;

&lt;p&gt;That's it — your Hooba server is ready.&lt;/p&gt;

&lt;p&gt;You can now create channels, configure permissions, and invite other people.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Invite your friends
&lt;/h2&gt;

&lt;p&gt;Hooba uses an invitation-based registration system.&lt;/p&gt;

&lt;p&gt;The server administrator creates invitation codes and shares them with the people who should join the community.&lt;/p&gt;

&lt;p&gt;Each invited user creates their own username and password on your server.&lt;/p&gt;

&lt;p&gt;There is no need for a Discord, Google, or Telegram account.&lt;/p&gt;

&lt;p&gt;Users can connect through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A web browser&lt;/li&gt;
&lt;li&gt;The Hooba desktop application for Windows and macOS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Desktop users enter the address of their Hooba server before signing in.&lt;/p&gt;

&lt;p&gt;Each installation is independent, so accounts are not shared between different Hooba servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. How the infrastructure works
&lt;/h2&gt;

&lt;p&gt;Hooba uses Docker Compose to run its server components.&lt;/p&gt;

&lt;p&gt;The production deployment consists of four main services:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Responsibility&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nginx&lt;/td&gt;
&lt;td&gt;Serves the web application, handles HTTPS, and proxies API and WebSocket traffic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backend&lt;/td&gt;
&lt;td&gt;Runs the application API, authentication, real-time communication, and voice signaling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PostgreSQL&lt;/td&gt;
&lt;td&gt;Stores users, channels, messages, and other application data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coturn&lt;/td&gt;
&lt;td&gt;Provides TURN connectivity for voice communication&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The backend uses Node.js and Fastify. PostgreSQL is accessed through Prisma.&lt;/p&gt;

&lt;p&gt;Voice communication is powered by mediasoup, which acts as an SFU (Selective Forwarding Unit).&lt;/p&gt;

&lt;p&gt;Instead of sending every participant's audio stream directly to every other participant, the SFU receives and forwards media streams.&lt;/p&gt;

&lt;p&gt;The voice server runs on your VPS, and a voice room supports up to 8 participants.&lt;/p&gt;

&lt;p&gt;This architecture keeps the deployment self-contained: the application, database, and voice infrastructure run on the server you control.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Manage your server
&lt;/h2&gt;

&lt;p&gt;After installation, Hooba adds a command-line utility:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can run it from any directory on your VPS.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;You can also execute individual commands.&lt;/p&gt;

&lt;h3&gt;
  
  
  Check server status
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Displays container status, backend availability, certificate expiration, free disk space, image quota, and backup information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Update Hooba
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Downloads the latest version from the Git repository, creates a database backup, rebuilds the application, and restarts the services.&lt;/p&gt;

&lt;p&gt;If an update doesn't work correctly, you can use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba rollback
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The rollback mechanism restores the previous application version and the database backup created before the update.&lt;/p&gt;

&lt;h3&gt;
  
  
  Restart or repair the server
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba repair
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Recreates the containers without deleting application data.&lt;/p&gt;

&lt;h3&gt;
  
  
  View logs
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba logs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also inspect an individual service:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba logs backend
hooba logs web
hooba logs postgres
hooba logs coturn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Troubleshoot voice connections
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba voice-check
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command checks the voice server, network configuration, and connection attempts.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Change image storage quota
&lt;/h3&gt;

&lt;p&gt;For example, to allocate 10 GiB:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba uploads-quota 10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9. Backups: don't skip this
&lt;/h2&gt;

&lt;p&gt;Your community data is stored on your VPS. If the machine fails, local backups stored on the same machine may be lost too.&lt;/p&gt;

&lt;p&gt;Create a backup manually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;hooba backup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A backup includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PostgreSQL database dump&lt;/li&gt;
&lt;li&gt;Server configuration (&lt;code&gt;.env.prod&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Chat image storage archive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Backups are stored in:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/opt/hooba/backups
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During installation, you can also enable automatic nightly database backups. The script keeps the 14 most recent automatic database backups.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; backups stored on the VPS are not enough on their own. Download them to another machine or storage location regularly.&lt;/p&gt;

&lt;p&gt;For example, from your local computer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scp &lt;span class="nt"&gt;-r&lt;/span&gt; root@YOUR_SERVER_IP:/opt/hooba/backups &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should also keep a separate copy of the environment file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scp root@YOUR_SERVER_IP:/opt/hooba/infra/docker/.env.prod &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This file contains database credentials and other secrets. Keep it private.&lt;/p&gt;

&lt;p&gt;Without the original environment file, you won't be able to restore the database backup on another server using the original database credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. A few things to keep in mind
&lt;/h2&gt;

&lt;p&gt;Self-hosting gives you control over the infrastructure, but it also means you're responsible for maintaining it.&lt;/p&gt;

&lt;p&gt;With Hooba:&lt;/p&gt;

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

&lt;p&gt;Hooba is released under the GNU AGPL-3.0 license.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The Hooba name and logo are not covered by that license.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Setting up your own communication server doesn't have to involve manually configuring databases, reverse proxies, certificates, and voice infrastructure.&lt;/p&gt;

&lt;p&gt;With Hooba, most of that work is handled by a single installation script.&lt;/p&gt;

&lt;p&gt;You get a private community space with text channels, voice communication, and screen sharing — running on infrastructure you control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One server. One community. Your rules.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Useful links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/blackpiest/hooba-app" rel="noopener noreferrer"&gt;Hooba GitHub repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hooba.space" rel="noopener noreferrer"&gt;Hooba website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.hooba.space" rel="noopener noreferrer"&gt;Server owner documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/blackpiest/hooba-app/issues/new/choose" rel="noopener noreferrer"&gt;Report an issue&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/blackpiest/hooba-app/blob/main/LICENSE" rel="noopener noreferrer"&gt;License: GNU AGPL-3.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>selfhosting</category>
      <category>docker</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
