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.ymlfile 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.comto your desired server name (eg. funnylookingfaces.com, or www.potatogram.net) - on line 43, change
hub:9000to 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
DOMAINvalue to reflect the domain name that you changed earlier, in thenginx.conffile - change the
DB agnosticoptions 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, andDB_PASSWORDto reflect that database; if no database is present, a database is created for you using these details - HINT:
DB_HOSTshould match the name (not, container name) of the database container used for hubzilla or within the docker-compose.yml file.
- HINT: if you already have a database, you will need to change the values of
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, undervolumes)- NOTE: do not keep the
<>symbols; remove them
- NOTE: do not keep the
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(ordocker-compose upif 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 -dordocker compose upif you want to see the output, as before) - the
versionlevel in the docker-compose.yml file is not necessary in the new version of docker compose; for backwards compatibility, it has been retained
- NOTE: the new version of docker compose is out (usage: