Installing ZaneOps
Quick-start
Section titled “Quick-start”You can install ZaneOps with one script:
curl -fsSL https://cdn.zaneops.dev/install.sh | sudo bashSystem requirements
Section titled “System requirements”ZaneOps is designed to operate on a variety of environments. For optimal performance, we recommend these requirements for running zaneops and your services :
- CPUs: 2 cores
- Memory (RAM): 2 GB
- Disk: At least 30 GB of free space
Keep in mind that this depends mainly on the resource requirements for your services, if you are running a lot of services that are resource intensive, you might need a bigger server, if you want to host static sites though, these requirements will totally be well enough.
Supported OS and architectures
Section titled “Supported OS and architectures”As of now ZaneOps has been tested on these platforms :
- Debian-based Linux distributions (e.g., Debian, Ubuntu)
- Red Hat-based distributions (e.g., CentOS, Fedora)
- Raspberry Pi OS 64-bit (Raspbian) using ARM architecture
- MacOs Mx series
- Alpine Linux
- NixOS
- Arch Linux
We can’t assure you that zaneops will work on other platforms, but if you try and succeed, we are more than happy to add it to our supported OS.
Manual installation
Section titled “Manual installation”Prerequisites
Section titled “Prerequisites”- Ensure you have Docker >=
v27.0.3installed and are using a Unix-based machine. It’s recommended to use the latest version of Docker to avoid compatibility issues. - Ensure you have
make,curl,jqandopensslinstalled :Terminal window # on Debian based distributionssudo apt install make curl jq openssl# on Red Hat-based distributionssudo dnf install -y make curl jq openssl# on Alpine Linuxsudo apk add make curl jq openssl# on NixOSnix-shell -p gnumake curl jq openssl# on Arch Linuxsudo pacman -S --noconfirm make curl jq openssl# on Macbrew install make curl jq openssl
-
Initialize Docker Swarm:
Terminal window docker swarm init --advertise-addr <MANAGER_IP> -
Create the installation directory:
Choose a directory for ZaneOps. This guide uses
/var/www/zaneops:Terminal window mkdir -p /var/www/zaneopscd /var/www/zaneops -
Download the makefile for the project:
Terminal window curl https://cdn.zaneops.dev/makefile > MakefileThe source code for this file is available on github.
-
Launch the setup process:
Terminal window make setupAfter this step, your directory structure should look like this:
Directoryzaneops
Directory.fluentd/
- …
Directorytemporalio/
- …
- docker-stack.prod-http.yaml
- docker-stack.prod.yaml
- .env
- fluent.conf
- Makefile
-
Review environment variables in
.env: The setup process will generate sane defaults for environment variables, the main variables you might want to modify areROOT_DOMAINandZANE_APP_DOMAINand they can be set to the same value if desired. See How to configure DNS records for ZaneOps ?/var/www/zaneops/.env # ...other variablesROOT_DOMAIN="<YOUR-IP>.sslip.io" # Root domain for generating app subdomainsZANE_APP_DOMAIN="<YOUR-IP>.sslip.io" # Domain for ZaneOps dashboard -
Start ZaneOps:
Terminal window make deploy -
Access the dashboard by connecting to the domain specified in
ZANE_APP_DOMAINin the.envfile. Once the app is up, you will see a welcome page asking you to create your first user :
Installing Locally
Section titled “Installing Locally”ZaneOps can be installed locally with minimal configuration changes. To do this :
-
keep the
ZANE_APP_DOMAINandROOT_DOMAINenvironment variables set to http://127-0-0-1.sslip.io :/var/www/zaneops/.env # ... other env variablesZANE_APP_DOMAIN="127-0-0-1.sslip.io"ROOT_DOMAIN="127-0-0-1.sslip.io" -
add the
__DANGEROUS_ALLOW_HTTP_SESSIONenvironment variable, and update theMODEvariable to open the port80:/var/www/zaneops/.env # ... other env variablesMODE=http__DANGEROUS_ALLOW_HTTP_SESSION="true" -
be sure to top zaneops first :
Terminal window make stop -
run the
deploycommand :Terminal window make deploy -
You can now access zaneops dashboard at http://127-0-0-1.sslip.io
Environment Variables Explained
Section titled “Environment Variables Explained”IMAGE_VERSION: Specifies the ZaneOps version to install.ZANE_APP_DIRECTORY: Defines the directory where ZaneOps will be installed.ZANE_DB_USER/ZANE_DB_PASSWORD: Credentials for connecting to the database.DJANGO_SECRET_KEY: Used by the API for various security functions, such as hashing user session tokens. Generate a secure key with at least 64 characters using a tool like openssl (e.g.,openssl rand -base64 64).ROOT_DOMAIN: Used to generate subdomains for deployed web apps, e.g.,my-web-app.127-0-0-1.sslip.io. The root domain itself can also host the dashboard if desired.ZANE_APP_DOMAIN: The domain where the ZaneOps dashboard will be accessible after deployment. It can be the same asROOT_DOMAINMODE: the mode in which to deploy your zaneops instance, should be eitherhttpsorhttp, if you change this tohttp, it enables the port80on your instance, beware as it can be source of security vulnerabilities.__DANGEROUS_ALLOW_HTTP_SESSION: allow for authenticating to zaneops using a domain onhttp://