# Does Oblien Openship Support Docker and Containerization?

> Oblien Openship fully supports containerization with production-ready Docker images and Compose configurations. Deploy the complete platform easily with a single command.

- Repository: [oblien/openship](https://github.com/oblien/openship)
- Tags: how-to-guide
- Published: 2026-07-29

---

**Yes, Oblien Openship is fully containerized and ships with production-ready Docker images and Compose configurations that let you deploy the entire platform—including PostgreSQL, Redis, API, Dashboard, and Edge services—with a single command.**

Oblien Openship is an open-source platform designed with a container-first architecture. According to the `oblien/openship` source code, the project provides native **Openship containerization** support through pre-built images published to the GitHub Container Registry and flexible orchestration files for both production and development workflows.

## Docker Architecture Overview

### The Edge Service (OpenResty)

The routing and TLS termination layer runs inside a dedicated container defined in `apps/edge/Dockerfile`. This image packages **OpenResty** and listens directly on the host's ports 80 and 443 using **host-network mode**. During runtime, the container receives dynamic configuration files from the API service via shared bind-mounts, placing the active [`nginx.conf`](https://github.com/oblien/openship/blob/main/nginx.conf) at [`/usr/local/openresty/nginx/conf/nginx.conf`](https://github.com/oblien/openship/blob/main//usr/local/openresty/nginx/conf/nginx.conf) inside the container.

### Full-Stack Orchestration

Rather than requiring manual installation of dependencies, Openship orchestrates its entire infrastructure through Docker Compose. The platform bundles **PostgreSQL**, **Redis**, the **API**, the **Dashboard**, and the **Edge** service into unified Compose definitions that handle networking, volumes, and environment variables automatically.

## Docker Compose Configuration Files

The project provides two distinct strategies for running containers, located under the `docker/` directory.

### Pre-Built Images (Quick Start)

The [`docker/docker-compose.yml`](https://github.com/oblien/openship/blob/main/docker/docker-compose.yml) file defines a pull-based stack that uses pre-built images from the GitHub Container Registry. This approach is ideal for production deployments or users who want to run the platform without building from source.

### Source Builds (Development)

The [`docker/docker-compose.build.yml`](https://github.com/oblien/openship/blob/main/docker/docker-compose.build.yml) file extends the base configuration to rebuild images locally from the repository source. This is useful when developing custom modifications to the Edge logic or API behavior.

## Running Openship with Docker

### Quick Start with Pre-Built Images

To launch the entire stack using the pre-published images from the GitHub Container Registry:

```bash

# From the repository root

cp .env.example .env                # adjust .env as needed

docker compose -f docker/docker-compose.yml --env-file .env up -d

```

This command starts PostgreSQL, Redis, the API, Dashboard, and Edge services in detached mode.

### Building Images from Source

To rebuild the containers locally when you have modified the source code or configuration:

```bash
docker compose -f docker/docker-compose.yml \
               -f docker/docker-compose.build.yml \
               --env-file .env up -d --build

```

### Stopping and Cleaning Up

To stop all services and remove the associated volumes (including database data):

```bash
docker compose -f docker/docker-compose.yml down -v

```

### Inspecting the Edge Container

To verify the OpenResty configuration or debug routing issues inside the running Edge container:

```bash
docker exec -it openship-edge sh

# Inside you’ll find the OpenResty config at /usr/local/openresty/nginx/conf/nginx.conf

```

## CI/CD and Image Publishing

Automation is handled by [`.github/workflows/docker-images.yml`](https://github.com/oblien/openship/blob/main/.github/workflows/docker-images.yml), which runs on every release. This GitHub Actions workflow automatically builds the Docker images for the API and Edge services, then publishes them to the GitHub Container Registry. Users running the pre-built stack receive these updates immediately when they pull the latest images.

## Summary

- **Oblien Openship** is fully containerized with first-class Docker support.
- The **Edge service** (`apps/edge/Dockerfile`) runs OpenResty on host ports 80/443 via host-network mode.
- **Docker Compose** files in `docker/` provide both pre-built ([`docker-compose.yml`](https://github.com/oblien/openship/blob/main/docker-compose.yml)) and source-build ([`docker-compose.build.yml`](https://github.com/oblien/openship/blob/main/docker-compose.build.yml)) workflows.
- The complete stack includes PostgreSQL, Redis, API, Dashboard, and Edge services.
- **GitHub Actions** ([`.github/workflows/docker-images.yml`](https://github.com/oblien/openship/blob/main/.github/workflows/docker-images.yml)) automate image builds and registry publishing.

## Frequently Asked Questions

### Does Openship require Docker to run?

While Docker is the recommended and officially supported deployment method, Openship could theoretically run directly on a host if all dependencies (PostgreSQL, Redis, Node.js, OpenResty) are manually configured. However, the project is architected specifically for containerization, and the provided Compose files are the only documented production deployment method.

### What ports does the Openship Edge container expose?

The Edge container binds directly to host ports **80 and 443** using Docker's host-network mode, as defined in the Compose configuration. This allows OpenResty to handle TLS termination and HTTP routing without additional port mapping layers.

### Can I customize the OpenResty configuration in the Edge container?

Yes. You can modify the [`apps/edge/nginx.conf`](https://github.com/oblien/openship/blob/main/apps/edge/nginx.conf) file in the source repository and rebuild the image using [`docker/docker-compose.build.yml`](https://github.com/oblien/openship/blob/main/docker/docker-compose.build.yml), or mount a custom configuration file via bind-mounts in the Compose definition to override the default behavior without rebuilding.

### How do I update Openship when running with Docker?

For pre-built deployments, run `docker compose pull` in the `docker/` directory to fetch the latest images from the GitHub Container Registry, then restart with `docker compose up -d`. For source-based deployments, pull the latest code from the repository and run the build command with the `--build` flag to regenerate images with the updated source.