plane icon indicating copy to clipboard operation
plane copied to clipboard

Error: API container not found. Please check if services are running.

Open Minionan opened this issue 1 month ago • 2 comments

Trying to install Plane Community Edition I'm on updated and upgraded, fresh Ubuntu 24.04.3 LTS installation.

dominik@Workstation:~/Custom_containers/Plane$ sudo apt update
Hit:1 https://nvidia.github.io/libnvidia-container/stable/deb/amd64  InRelease
Hit:2 https://download.docker.com/linux/ubuntu noble InRelease
Hit:3 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64  InRelease
Hit:4 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:5 http://ae.archive.ubuntu.com/ubuntu noble InRelease
Get:6 http://ae.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Hit:7 http://ae.archive.ubuntu.com/ubuntu noble-backports InRelease
Fetched 126 kB in 2s (56.4 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

Installing Plane by the book following steps from https://developers.plane.so/self-hosting/methods/docker-compose#install-community-edition:

dominik@Workstation:~/Custom_containers/Plane$ curl -fsSL -o setup.sh https://github.com/makeplane/plane/releases/latest/download/setup.sh
dominik@Workstation:~/Custom_containers/Plane$ chmod +x setup.sh
dominik@Workstation:~/Custom_containers/Plane$ ./setup.sh
--------------------------------------------
 ____  _                          /////////
|  _ \| | __ _ _ __   ___         /////////
| |_) | |/ _` | '_ \ / _ \   /////    /////
|  __/| | (_| | | | |  __/   /////    /////
|_|   |_|\__,_|_| |_|\___|        ////
                                  ////
--------------------------------------------
Project management tool from the future
--------------------------------------------

Select a Action you want to perform:
   1) Install
   2) Start
   3) Stop
   4) Restart
   5) Upgrade
   6) View Logs
   7) Backup Data
   8) Exit

Action [2]: 1

Begin Installing Plane

Checking for the latest release...
Please wait while we check the availability of Docker images for the selected release (v1.1.0) with X86_64 support.
Plane supports amd64
Syncing environment variables...
Environment variables synced successfully
Updating custom variables...
Custom variables updated successfully
Pulls images for services defined in a Compose file, but does not start the containers.

Usage: pull [options] [--] [SERVICE...]

Options:
    --ignore-pull-failures  Pull what it can and ignores images with pull failures.
    --parallel              Deprecated, pull multiple images in parallel (enabled by default).
    --no-parallel           Disable parallel pulling.
    -q, --quiet             Pull without printing progress information
    --include-deps          Also pull services declared as dependencies

Most recent version of Plane is now available for you to use

In case of 'Upgrade', please check the 'plane.env 'file for any new variables and update them accordingly

dominik@Workstation:~/Custom_containers/Plane$ nano plane-app/plane.env
dominik@Workstation:~/Custom_containers/Plane$ cat plane-app/plane.env
APP_DOMAIN=localhost
APP_RELEASE=v1.1.0

WEB_REPLICAS=1
SPACE_REPLICAS=1
ADMIN_REPLICAS=1
API_REPLICAS=1
WORKER_REPLICAS=1
BEAT_WORKER_REPLICAS=1
LIVE_REPLICAS=1

LISTEN_HTTP_PORT=80
LISTEN_HTTPS_PORT=443

WEB_URL=http://192.168.0.10:8080
DEBUG=0
CORS_ALLOWED_ORIGINS=http://192.168.0.10:8080
API_BASE_URL=http://api:8000

#DB SETTINGS
PGHOST=plane-db
PGDATABASE=plane
POSTGRES_USER=plane
POSTGRES_PASSWORD=plane
POSTGRES_DB=plane
POSTGRES_PORT=5432
PGDATA=/var/lib/postgresql/data
DATABASE_URL=

# REDIS SETTINGS
REDIS_HOST=plane-redis
REDIS_PORT=6379
REDIS_URL=

# RabbitMQ Settings
RABBITMQ_HOST=plane-mq
RABBITMQ_PORT=5672
RABBITMQ_USER=plane
RABBITMQ_PASSWORD=plane
RABBITMQ_VHOST=plane
AMQP_URL=

# If SSL Cert to be generated, set CERT_EMAIl="email <EMAIL_ADDRESS>"
CERT_ACME_CA=https://acme-v02.api.letsencrypt.org/directory
TRUSTED_PROXIES=0.0.0.0/0
SITE_ADDRESS=:80
CERT_EMAIL=



# For DNS Challenge based certificate generation, set the CERT_ACME_DNS, CERT_EMAIL
# CERT_ACME_DNS="acme_dns <CERT_DNS_PROVIDER> <CERT_DNS_PROVIDER_API_KEY>"
CERT_ACME_DNS=


# Secret Key
SECRET_KEY=60gp0byfz2dvffa45cxl20p1scy9xbpf6d8c5y0geejgkyp1b5

# DATA STORE SETTINGS
USE_MINIO=1
AWS_REGION=
AWS_ACCESS_KEY_ID=access-key
AWS_SECRET_ACCESS_KEY=secret-key
AWS_S3_ENDPOINT_URL=http://plane-minio:9000
AWS_S3_BUCKET_NAME=uploads
FILE_SIZE_LIMIT=5242880

# Gunicorn Workers
GUNICORN_WORKERS=1

# UNCOMMENT `DOCKER_PLATFORM` IF YOU ARE ON `ARM64` AND DOCKER IMAGE IS NOT AVAILABLE FOR RESPECTIVE `APP_RELEASE`
# DOCKER_PLATFORM=linux/amd64

# Force HTTPS for handling SSL Termination
MINIO_ENDPOINT_SSL=0

# API key rate limit
API_KEY_RATE_LIMIT=60/minute

# Live server environment variables
# WARNING: You must set a secure value for LIVE_SERVER_SECRET_KEY in production environments.
LIVE_SERVER_SECRET_KEY=
DOCKERHUB_USER=artifacts.plane.so/makeplane
PULL_POLICY=if_not_present
CUSTOM_BUILD=false

Double checked the ports availability:

dominik@Workstation:~/Custom_containers/Plane$ sudo ss -tuln | grep :80
dominik@Workstation:~/Custom_containers/Plane$ sudo ss -tuln | grep :443
dominik@Workstation:~/Custom_containers/Plane$ sudo ss -tuln | grep :8080
dominik@Workstation:~/Custom_containers/Plane$ sudo ss -tuln | grep :8000

Installing:

dominik@Workstation:~/Custom_containers/Plane$ ./setup.sh
--------------------------------------------
 ____  _                          /////////
|  _ \| | __ _ _ __   ___         /////////
| |_) | |/ _` | '_ \ / _ \   /////    /////
|  __/| | (_| | | | |  __/   /////    /////
|_|   |_|\__,_|_| |_|\___|        ////
                                  ////
--------------------------------------------
Project management tool from the future
--------------------------------------------

Select a Action you want to perform:
   1) Install
   2) Start
   3) Stop
   4) Restart
   5) Upgrade
   6) View Logs
   7) Backup Data
   8) Exit

Action [2]: 2

Builds, (re)creates, starts, and attaches to containers for a service.

Unless they are already running, this command also starts any linked services.

The `docker-compose up` command aggregates the output of each container. When
the command exits, all containers are stopped. Running `docker-compose up -d`
starts the containers in the background and leaves them running.

If there are existing containers for a service, and the service's configuration
or image was changed after the container's creation, `docker-compose up` picks
up the changes by stopping and recreating the containers (preserving mounted
volumes). To prevent Compose from picking up changes, use the `--no-recreate`
flag.

If you want to force Compose to stop and recreate all containers, use the
`--force-recreate` flag.

Usage: up [options] [--scale SERVICE=NUM...] [--] [SERVICE...]

Options:
    -d, --detach               Detached mode: Run containers in the background,
                               print new container names. Incompatible with
                               --abort-on-container-exit.
    --no-color                 Produce monochrome output.
    --quiet-pull               Pull without printing progress information
    --no-deps                  Don't start linked services.
    --force-recreate           Recreate containers even if their configuration
                               and image haven't changed.
    --always-recreate-deps     Recreate dependent containers.
                               Incompatible with --no-recreate.
    --no-recreate              If containers already exist, don't recreate
                               them. Incompatible with --force-recreate and -V.
    --no-build                 Don't build an image, even if it's missing.
    --no-start                 Don't start the services after creating them.
    --build                    Build images before starting containers.
    --abort-on-container-exit  Stops all containers if any container was
                               stopped. Incompatible with -d.
    --attach-dependencies      Attach to dependent containers.
    -t, --timeout TIMEOUT      Use this timeout in seconds for container
                               shutdown when attached or when containers are
                               already running. (default: 10)
    -V, --renew-anon-volumes   Recreate anonymous volumes instead of retrieving
                               data from the previous containers.
    --remove-orphans           Remove containers for services not defined
                               in the Compose file.
    --exit-code-from SERVICE   Return the exit code of the selected service
                               container. Implies --abort-on-container-exit.
    --scale SERVICE=NUM        Scale SERVICE to NUM instances. Overrides the
                               `scale` setting in the Compose file if present.
    --no-log-prefix            Don't print prefix in logs.

   Data Migration completed successfully ✅
   Error: API container not found. Please check if services are running.

No matter what I do with the ports I always get the same error: API container not found. Please check if services are running. Commercial version installs fine. Is this a Community Edition installation bug?

Minionan avatar Nov 07 '25 12:11 Minionan

@Minionan did you ever find a workaround? Having the same issue right now

AlexKalopsia avatar Nov 18 '25 21:11 AlexKalopsia

Hi everyone, I ran into the same problem as you and took a closer look at setup.sh.

The problem is docker-compose.

The script checks whether docker-compose is installed. If so, the planned containers are started with ‘docker-compose’ ...

The problem here is that the parameters -d --pull if_not_present --quiet-pull are passed to the docker-compose ... up-command, but these parameters are only recognized by docker compose, i.e., without a ‘-’ between the two words.

docker-compose ≠ docker compose

Temporary solution:

  1. Check whether docker compose is installed on your system
  2. Open setup.sh with a text editor such as vi, vim, or nano (if GUI is installed, this is also possible)
  3. In line 674, delete the ‘-’ in the definition of the variable COMPOSE_CMD so that docker compose - command is always used for docker command execution, even if docker-compose is installed.

Josef-99 avatar Nov 23 '25 21:11 Josef-99