Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation using Docker

It is possible to install Hubzilla conveniently and easily as a Docker container. Saiwal (sk@hub.utsukta.org) and Dale Hitchenor (@dhitchenor@fe.disroot.org) offer a preconfigured environment for a Hubzilla container.

1. Docker-Container by Saiwal

The key features are:

  • Use Docker Compose to set up a fully functional Hubzilla instance with just a few commands.
  • Prebuilt images available via dockerhub for amd64, arm/v7, arm64.
  • Continuous Updates: The Docker image is built to allow for easy updates whenever new changes are made to the Hubzilla core or its dependencies.
  • SMTP Integration: Built-in support for sending emails using ssmtp, making it easy to configure email notifications for your Hubzilla instance.

The repository for the container is located here: skprg/hubzilla-docker

Building the image from scratch

  • Clone the Repository:
git clone https://github.com/skprg/hubzilla-docker.git
cd hubzilla-docker
  • Configure Your Environment: Update the docker-compose.yml file with your SMTP and other settings.
  • Build and Run the Container:
docker-compose up --build -d

Using prebuilt image

  • Replace the following lines in docker-compose.yml
    build:
      context: .
      dockerfile: Dockerfile 

with

    image: ghcr.io/skprg/hubzilla-docker:latest
  • Run the container:
docker compose up -d

Access Your Hubzilla Instance: Navigate to http://localhost (or the appropriate URL) to view your Hubzilla instance.

Further notes / update / tips

Further notes, upgrade instructions and tips can be found in the repository linked above.


2. Docker container by Dale Hitchenor

Features

  • Automatic setup
  • Integrated add-ons, pre-installed
  • env file for easy configuration/activation of features

Setup:

Instructions based on Dale Hitchenor's repo: dhitchenor/hubzilla

1. Clone git repository to your server (or wherever you desire Hubzilla to be deployed from).
  • eg: git clone https://github.com/dhitchenor/hubzilla
    • NOTE: you will need to install git for this to work, otherwise you can download the repository in a zip file from GitHub
2. Edit nginx.conf:
  • on line 19, change domain.com to your desired server name (eg. funnylookingfaces.com, or www.potatogram.net)
  • on line 43, change hub:9000 to match the name (not, container name) of your hubzilla container in your docker-compose.yml file
3. Edit .env file
  • depending on the database that you are using, uncomment/comment the appropriate lines, ENSURE the code for the unused database is commented out
    • HINT: don't change any port numbers, unless you have to; including database ports, nginx ports, hubzilla ports
  • change the DOMAIN value to reflect the domain name that you changed earlier, in the nginx.conf file
  • change the DB agnostic options to reflect your desired database credentials
    • HINT: if you already have a database, you will need to change the values of DB_NAME, DB_USER, and DB_PASSWORD to reflect that database; if no database is present, a database is created for you using these details
    • HINT: DB_HOST should match the name (not, container name) of the database container used for hubzilla or within the docker-compose.yml file.
4. Edit docker-compose.yml file
  • depending on the database that you are using, uncomment/comment the appropriate healthcheck lines, ENSURE the code for the unused database is commented out
  • change all code in between the < > symbols, to reflect the appropriate local directories (2 in total, under volumes)
    • NOTE: do not keep the < > symbols; remove them
5. Ensure placement of files
  • if you have changed the location of any files that you gained when cloning this git repository, ensure the changes are reflected within the docker-compose.yml file
    • HINT: by default, the '.env' file should be in the same directory as the docker-compose file
    • HINT: by default, the nginx.conf file is in the config folder, which is in the same directory as the docker-compose file
6. Run docker compose
  • eg, docker-compose up -d (or docker-compose up if you want to see the output of the deployment), and navigate to your domain (in a web browser), after deployment has finished.
    • NOTE: the new version of docker compose is out (usage: docker compose up -d or docker compose up if you want to see the output, as before)
    • the version level in the docker-compose.yml file is not necessary in the new version of docker compose; for backwards compatibility, it has been retained