Installation Guide
Welcome to the Nixopus installation guide. This section will help you set up Nixopus on your VPS quickly.
Prerequisites
Before you begin, ensure you have:
Prerequisites Checklist
- VPS with sudo access - Required for system-level installation
- Internet connection - For downloading dependencies and updates
System Requirements
Make sure your system meets these requirements:
| Requirement | Minimum | Recommended (Production) |
|---|---|---|
| Operating System | Linux (Ubuntu 20.04+, Debian 11+), macOS (CLI only) | Same |
| CPU | 2 cores | 4+ cores |
| RAM | 2GB | 4GB+ |
| Storage | 5GB free | 10GB+ free |
| Network | Internet connection | Stable connection |
Quick Installation
The easiest way to install Nixopus is using the one-liner installation script, which automatically installs the CLI and sets up Nixopus on your VPS:
curl -sSL https://install.nixopus.com | bashcurl -sSL https://install.nixopus.com | sudo bashWhat the Script Does
This single command will:
- Detect your system architecture and operating system
- Download and install the appropriate Nixopus CLI package
- Automatically run
nixopus installto set up Nixopus on your server
Two-Step Installation
If you prefer to install the CLI separately first, you can use the two-step process:
Step 1: Install the Nixopus CLI Only
curl -sSL https://install.nixopus.com | bash -s -- --skip-nixopus-installStep 2: Install Nixopus on your VPS
Once the CLI is installed, you can install Nixopus on your VPS:
nixopus installCLI Verification
Before proceeding, verify the CLI is working:
nixopus --version
nixopus --helpInstallation Options
You can customize your installation by providing optional parameters. Options are organized by category:
Domain Configuration
Configure how Nixopus will be accessed:
| Option | Short | Description | Example |
|---|---|---|---|
--api-domain | -ad | Domain for the Nixopus API | api.nixopus.com |
--view-domain | -vd | Domain for the Nixopus app | nixopus.com |
--host-ip | -ip | Server IP when no domains provided | 10.0.0.154 |
Domain vs IP
- Domains: Recommended for production. Enables HTTPS and proper SSL certificates
- IP Address: Useful for testing or internal deployments. Falls back to IP if domains not provided
Port Configuration
Customize service ports if defaults conflict with existing services:
| Service | Option | Default (Production) | Default (Development) |
|---|---|---|---|
| API | --api-port PORT | 8443 | 8080 |
| Frontend | --view-port PORT | 7443 | 3000 |
| PostgreSQL | --db-port PORT | 5432 | 5432 |
| Redis | --redis-port PORT | 6379 | 6379 |
| Caddy Admin | --caddy-admin-port PORT | 2019 | 2019 |
| Caddy HTTP | --caddy-http-port PORT | 80 | 80 |
| Caddy HTTPS | --caddy-https-port PORT | 443 | 443 |
| SuperTokens | --supertokens-port PORT | 3567 | 3567 |
Port Conflicts
Ensure all specified ports are available. The installer will check, but conflicts can cause installation failures.
General Options
Common installation options:
| Option | Short | Description |
|---|---|---|
--verbose | -v | Show detailed installation logs |
--timeout | -t | Set timeout per step (default: 300s) |
--force | -f | Replace existing files |
--dry-run | -d | Preview changes without installing |
--config-file | -c | Path to custom config file |
Dry Run
Always test with --dry-run first to see what changes will be made without actually installing:
curl -sSL https://install.nixopus.com | bash -s -- --dry-runCustom Config File
The --config-file option allows you to use a custom configuration file instead of the default config.prod.yaml.
This is useful for:
- Custom deployment configurations
- Environment-specific settings
- Testing different configurations
Advanced Options
Advanced Configuration
For advanced users and custom deployments:
| Option | Description | Default |
|---|---|---|
--repo REPOSITORY | GitHub repository URL | https://github.com/raghavyuva/nixopus |
--branch BRANCH | Git branch to use | master |
Custom Repository/Branch
When using a custom repository or branch, the installer will use docker-compose-staging.yml instead of docker-compose.yml. This is intended for development and testing.
Installation Examples
Common installation scenarios with ready-to-use commands:
Basic Installation with Domains
Recommended for production deployments with SSL certificates:
curl -sSL https://install.nixopus.com | bash -s -- \
--api-domain api.example.com \
--view-domain example.comDomain Setup
Before installation, ensure your domains point to your VPS IP address:
api.example.com→ Your VPS IPexample.com→ Your VPS IP
The installer will automatically configure SSL certificates via Caddy.
Installation with IP Address
For testing or internal deployments without domains:
curl -sSL https://install.nixopus.com | bash -s -- \
--host-ip 10.0.0.154IP Detection
If --host-ip is not provided, the installer will automatically detect your public IP address.
Installation with Custom Ports
When default ports conflict with existing services:
curl -sSL https://install.nixopus.com | bash -s -- \
--api-port 9000 \
--view-port 9001Verbose Installation with Custom Timeout
For detailed logs and longer timeout (useful for slow connections):
curl -sSL https://install.nixopus.com | bash -s -- \
--verbose \
--timeout 600Verbose Mode
Use --verbose to see detailed installation progress, which is helpful for troubleshooting.
Dry Run
Preview what will happen without installing:
curl -sSL https://install.nixopus.com | bash -s -- --dry-runDry Run Benefits
The dry run shows:
- What files will be created
- What services will be configured
- What ports will be used
- Any potential conflicts
Perfect for testing before actual installation!
Using Custom Repository and Branch
For development or testing with custom code:
curl -sSL https://install.nixopus.com | bash -s -- \
--repo https://github.com/user/fork \
--branch developDevelopment Use Only
Custom repositories and branches use docker-compose-staging.yml and are intended for development/testing, not production.
Manual Installation After CLI Setup
If you've already installed the CLI separately, you can run nixopus install directly:
nixopus install \
--api-domain api.example.com \
--view-domain example.com \
--verbosenixopus install \
--host-ip 192.168.1.100 \
--verbosenixopus install \
--api-port 9000 \
--view-port 9001 \
--timeout 600Accessing Nixopus
After successful installation, access your Nixopus instance:
Access URLs
With Domain Configuration:
- Frontend:
https://your-view-domain.com(e.g.,https://nixopus.example.com) - API:
https://your-api-domain.com(e.g.,https://api.example.com)
With IP Configuration:
- Frontend:
http://YOUR_IP:PORT(e.g.,http://192.168.1.100:80) - API:
http://YOUR_IP:API_PORT(e.g.,http://192.168.1.100:8443)
First Login
After installation, you'll need to:
- Visit the frontend URL
- Complete the initial setup
- Create your admin account
Check the installation logs for any setup instructions specific to your deployment.
Troubleshooting
If you encounter issues during installation:
Installation Issues
The installation script has not been tested in all distributions and operating systems. If you encounter any issues:
- Check the logs: Use
--verboseflag to see detailed error messages - Verify prerequisites: Ensure your system meets all requirements
- Check ports: Make sure required ports are available
- Report issues: Create an issue on our GitHub repository with:
- Your operating system and version
- Installation command used
- Full error message/output
- System requirements (CPU, RAM, storage)