Skip to main content

Core Concepts

This page defines the key terms and concepts in Appliku and how they connect.

Team

A Team is the top-level organizational unit. All resources (servers, applications, databases) belong to a team. When you sign up, a default team is created for you.

Teams have members with different permission levels:

  • Owner — Full access, billing management
  • Admin — Can manage servers, apps, and team settings
  • Developer — Can manage applications and deploy

Server

A Server is a Linux machine (Ubuntu 22.04/24.04 or Debian 12) that runs your applications. Servers can be:

  • Standalone — Runs applications directly via Docker Compose. Best for most use cases.
  • Cluster Node — Part of a Docker Swarm cluster. Can be a manager, worker, or build server.

Appliku can provision servers for you on DigitalOcean or AWS, or you can bring any server with SSH access.

During setup, Appliku installs Docker and Nginx on the server. All ongoing management is done entirely over SSH — Appliku installs no agent and has no footprint on server resources.

Application

An Application is your code repository connected to Appliku with a specific deployment configuration. Each application has:

  • A Git repository source (GitHub, GitLab, or custom Git)
  • A branch to deploy from
  • A server (or cluster) to deploy to
  • Build settings (build image, build command, Dockerfile)
  • Processes that define how the app runs
  • Environment variables for configuration
  • Optional: databases, volumes, cron jobs, custom domains

Process

A Process is a named command that runs as part of your application. Common process types:

  • web — The HTTP-serving process. Receives traffic through Nginx. If your app needs to serve HTTP requests, it must have a web process.
  • release — Runs after each successful deployment (e.g., database migrations). Special: runs once, not continuously.
  • worker, scheduler, etc. — Background processes. Any name you choose.

Each process runs in its own Docker container. In standalone mode, you toggle processes on/off. In cluster mode, you set the scale (number of replicas).

Deployment

A Deployment is a single build-and-release cycle. When you push to Git (or trigger manually), Appliku:

  1. Pulls the latest code from your branch
  2. Builds a Docker image using the configured build image or Dockerfile
  3. Runs the release process (if configured)
  4. Starts/restarts the enabled processes with the new image

Each deployment has a status: new, deploying, deployed, failed, timeout, or aborted. Full build logs are available for every deployment.

Database (Datastore)

A Database is a managed database service provisioned by Appliku as a Docker container on your server. Supported engines include PostgreSQL, MySQL, Redis, RabbitMQ, and Elasticsearch.

When you create a database, Appliku automatically injects a connection URL as an environment variable into your application (e.g., DATABASE_URL for PostgreSQL).

Domain

Every application gets a default subdomain at *.applikuapp.com. You can add custom domains with automatic Let's Encrypt SSL certificates (requires a paid plan).

Domains are served through Nginx on your server with automatic HTTPS.

Volume

A Volume is persistent storage mounted into your application's containers. Unlike the ephemeral container filesystem, volume data survives deployments and restarts.

Volumes can optionally be exposed via a URL path (e.g., /media/ for user-uploaded files served by Nginx).

Build Image

A Build Image is a pre-configured Docker base image that Appliku uses to build your application. It includes the language runtime, package managers, and build tooling. Examples: python-3.13, node-20-npm, ruby-3.4.1.

You can also use dockerfile or custom to bring your own Dockerfile.

How They Connect

Team
├── Servers
│ ├── Standalone Server
│ └── Cluster (Manager + Workers)
├── Applications
│ ├── Git Repository (source code)
│ ├── Build Settings (build image, commands)
│ ├── Processes (web, release, worker)
│ ├── Environment Variables
│ ├── Databases (PostgreSQL, Redis, etc.)
│ ├── Domains (*.applikuapp.com + custom)
│ ├── Volumes (persistent storage)
│ ├── Cron Jobs (scheduled tasks)
│ └── Deployments (build → deploy history)
└── Members (Owner, Admin, Developer)