Skip to content

Deployment Overview of Curiosity on Server

Prerequisites and Basic Requirements

To ensure the successful deployment of Curiosity, the following system requirements must be met:

  • Operating System: Debian or Ubuntu-based distributions.

  • Privileges: Root or sudo access is required for package installation and Docker management.

  • Dependencies: The system requires wget, curl, libc-dev, and libsnappy1v5.

  • Network Ports:

  • Port 443 (HTTPS) must be open for external traffic.

  • Port 8080 is used internally by the application container.

FQDN of the final panel on the hostkey.in domain

The application is accessible via a specific subdomain generated based on the server ID.

Parameter Value
Prefix curiosity
Domain hostkey.in
Full template curiosity{Server_ID}.hostkey.in

File and Directory Structure

The application uses the following directory structure for configuration and data persistence:

  • /root/nginx: Contains the Nginx reverse proxy configuration files (compose.yml).

  • /root/curiosity: Contains the Curiosity application deployment files (compose.yml).

  • /data/nginx/user_conf.d: Directory used for custom Nginx configurations.

  • curiosity-data (Docker Volume): Persistent storage for application data located at /data/curiosity within the container.

Application Installation Process

The installation process involves several stages to prepare the environment and deploy the services:

  1. System Preparation: The system packages are updated and upgraded via apt. Necessary libraries and utilities (wget, curl, libc-dev, libsnappy1v5) are installed.

  2. Docker Environment Setup: Docker is installed and configured to manage containerized services.

  3. Proxy Configuration: An Nginx reverse proxy with Certbot integration is initialized in /root/nginx using a Docker Compose file.

  4. Application Deployment: The Curiosity application is deployed in /root/curiosity via Docker Compose, utilizing the specific image curiosityai/curiosity:70269.

Access Rights and Security

  • Firewall: Only essential ports are exposed. The Nginx container operates using network_mode: host to manage SSL termination and traffic routing.

  • User Management: An administrative user is configured for the application (default username: admin).

  • SSL/TLS: SSL certificates are managed via Certbot and stored in a shared Docker volume named nginx_secrets.

Docker Containers and Their Deployment

The deployment consists of two primary containerized services.

Nginx Proxy Container

This container handles incoming HTTPS requests and manages SSL certificates.

  • Image: jonasal/nginx-certbot:latest

  • Network Mode: host

  • Volumes:

  • nginx_secrets:/etc/letsencrypt

  • /data/nginx/user_conf.d:/etc/nginx/user_conf.d

  • Environment Variables:

  • CERTBOT_EMAIL: Set to the administrative contact email for certificate renewal notifications.

Curiosity Application Container

This is the main application service.

  • Image: curiosityai/curiosity:70269

  • Container Name: curiosity

  • Restart Policy: unless-stopped

  • Ports: 127.0.0.1:8080 -> 8080 (Internal access only)

  • Volumes:

  • curiosity-data:/data

  • Environment Variables:

  • MSK_GRAPH_STORAGE: /data/curiosity

  • MSK_PUBLIC_ADDRESS: The full FQDN of the server.

  • MSK_ADMIN_USER: Administrative username.

  • MSK_ADMIN_EMAIL: Administrative email address.

  • MSK_ADMIN_PASSWORD: Password for the administrative account.

Application Update Instructions

To update the Curiosity application to the latest version, execute the following commands in the application directory:

cd /root/curiosity
docker compose pull && docker compose up -d

Location of Configuration Files and Data

  • Nginx Compose File: /root/nginx/compose.yml

  • Curiosity Compose File: /root/curiosity/compose.yml

  • Application Data Volume: curiosity-data (managed by Docker)

  • SSL Certificates: Managed via the nginx_secrets volume.

Available Ports for Connection

Port Service Access Type
443 HTTPS (Nginx Proxy) External/Public
8080 Curiosity API/Web Internal Only

Starting and Stopping the Application

The application is managed using Docker Compose.

To start the services:

cd /root/nginx && docker compose up -d
cd /root/curiosity && docker compose up -d

To stop the services:

cd /root/nginx && docker compose down
cd /root/curiosity && docker compose down

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×