Squidex
  • Welcome to Squidex
  • Getting Started
    • Squidex Cloud
    • Installation Instructions
      • Platforms
        • Install on Kubernetes
        • Install on AWS (Deprecated)
        • Install on AWS EC2 using Docker
        • Install on Azure
        • Install on Azure using ARM
        • Install on Google Cloud Platform (GCP)
        • Install on Docker
        • Install on Heroku
        • Install on IIS
        • Install on Render
        • Install on Vultr
      • Configuration
        • Deploying the Image Resizer Service
      • Troubleshooting and Support
        • Diagnose Runtime Issues
        • Restoring Deleted Apps
      • Install Identity (Deprecated)
      • External Identity Providers
        • Azure AD (OAuth) with Squidex
    • Contributing and Developing
      • Building
      • Developing
      • Extensions
        • Custom Rule Action
      • Contributing
      • Architecture
      • Translating
      • Squidex Docs Program
    • Roadmap
    • Quick Start Guides
      • Vue.js Blog with Squidex
      • React.js Blog with Squidex
      • Angular Blog with Squidex
  • Documentation
    • Introduction and Use Case
    • Concepts
      • Apps
      • Teams
      • Schemas
        • Field Rules
      • Content
        • Scheduled Publishing
      • Assets
        • Querying Assets
      • Localization
      • Migrations
      • Roles & Permissions
      • Rules
        • Publish an Event to Azure Queues using Rules
        • Populate Elasticsearch Index
      • Backups
      • Subscriptions
        • App Subscriptions v/s Team Subscriptions
      • Notifications
      • Dashboard
      • Workflows
    • Software Development Kits
      • TypeScript
      • .NET
        • Version v14 (and Earlier)
        • Version v15 (and Later)
      • PHP
      • Java
    • Developer Guides
      • API
        • Authentication
        • Postman
        • Queries
        • Assets
      • Automation Tools (CLI)
      • Scripting
        • Scripting Helper Methods
      • Embed Content
      • Custom Workflows
      • Custom Editors
      • Custom Sidebars
      • Preview Content
      • Rule Formatting
        • Simple
        • Script
        • Liquid
      • Tutorials
        • Building a Blog with Squidex and Next.js
  • Next
    • Squidex 3.0: API Compatibility
Powered by GitBook
On this page
  • Supported Platforms
  • Use the Docker Compose Setup
  • 1. Download the files
  • 2. Configure Squidex
  • 3. Data Folder
  • 4. Run the docker-compose file
  • 5. Visit your Installation
  • Troubleshooting
  • I Get NET::ERR_CERT_AUTHORITY_INVALID from the Browser
  • I Get a 502 Bad Gateway
  • I Get a IDX20803: Unable to obtain configuration from <URL>
  • More Issues?

Was this helpful?

  1. Getting Started
  2. Installation Instructions
  3. Platforms

Install on Docker

Install Squidex on Linux machines with docker and docker-compose.

PreviousInstall on Google Cloud Platform (GCP)NextInstall on Heroku

Last updated 1 year ago

Was this helpful?

Supported Platforms

  • Linux with

  • Windows 10 Pro, Enterprise or Education with

  • Windows with

  • Mac with

Digital Ocean are not supported right now, because their DNS prevents that a container can make a request to itself, which is needed to get OIDC via Identity Server working properly. The issue has been discussed in the .

Use the Docker Compose Setup

We provide a Docker Compose configuration:

There are 3 alternatives:

Squidex + Caddy

docker-compose.yml has the following containers:

  • Squidex

  • as reverse proxy to support HTTPS. Also issues the certificate.

The caddy proxy uses a custom image to configure the Caddyfile.

Recommended setup because of the performance of Caddy and the number of containers.

Squidex + NGINX

docker-compose-nginx.yml has the following containers:

  • Squidex

Recommended setup when you are familiar with Nginx and have special requirements.

Squidex without Proxy

docker-compose-noproxy.yml has the following containers:

  • Squidex

Recommended setup if you already have a reverse proxy (e.g. Cloudflare).

1. Download the files

Download the following files to your server:

  • docker-compose.yml

  • .env

2. Configure Squidex

Open the .env file and set the following variables:

Variable
Description

SQUIDEX_DOMAIN

Your domain name, that you want to use for your installation. For example the domain name for the Squidex cloud is cloud.squidex.io. If you run Squidex on your local machine it is localhost.

SQUIDEX_ADMINEMAIL

The email address of the admin user. You can leave it empty to create a new user with the setup page when you visit your Squidex installation in the browser.

SQUIDEX_ADMINPASSWORD

The password of the admin user. Must contain a lowercase and uppercase letter, a number and a special character. You can leave it empty to create a new user with the setup page when you visit your Squid

You can keep the other settings empty for now.

3. Data Folder

The data files, such as assets and the MongoDB database files will be stored, outside of the Docker container to simplify backups. The default path /etc/squidex will be created by Docker automatically.

4. Run the docker-compose file

docker-compose up -d

5. Visit your Installation

Squidex should be up and running now. You can visit your installation under the following URL:

You should see the following screen:

The setup screen shows a checklist with hints and warnings. As long as there is no error (a red icon), everything is fine.

If no external authentication provider such as Google or Github is configured you will not see the red area.

Next, create a new administrator account with an email address and password and you are ready to go. We will not send you an email to this email address, so you can choose whatever email address you want.

Troubleshooting

Please check the logs first using Docker.

docker ps # Get the container id first
docker logs <CONTAINER-ID> # Read the logs

I Get NET::ERR_CERT_AUTHORITY_INVALID from the Browser

You are very likely running under localhost. In which case the webserver (Caddy) cannot create a valid certificate and will create a self signed certificate. Usually, there`is a button to continue to localhost:

This screenshot is taken from Chrome and might look different on other browsers.

I Get a 502 Bad Gateway

It can take some time to issue the certificate, approximately around 10 minutes.

Do also ensure that your DNS server is configured correctly.

I Get a IDX20803: Unable to obtain configuration from <URL>

Problem 1: Firewall Issues

The best solution is to add https as a service to the firewall:

CentOS:

sudo firewall-cmd --add-service=https --permanent --zone=trusted
sudo firewall-cmd --reload
sudo systemctl restart docker

Ubuntu:

sudo ufw allow 443
sudo ufw enable
sudo systemctl restart docker

Problem 2: Invalid Host name

This problem occurs because you are using a host name or IP address that is not reachable from the Docker itself. You can think about Squidex being two processes in one application. There is the OpenID Connect Token Server (that generates the access tokens and the API). When the API receives an access token it makes a request to the Token Server to validate the token (see the following diagram).

When you use a local host name or IP address such as localhost or 127.0.0.1, you're referring to the host name, but containers inside docker cannot resolve the network routes and therefore the authentication flow fails. The solution is to either use another local host name, that you have to configure in the host file of your operation system or to use a real host name, such as a public domain name.

More Issues?

For other issues, it is likely that you have a configuration problem not related to hosting under Kubernetes. Checkout the following documentation:

as reverse proxy to support HTTPS

NGINX sidecar to provision free and secure certificates with .

The NGINX proxy uses a to increase the size of the http headers.

.

In some cases, especially on CentOS 7, the communication between Docker containers on the same host is blocked by a firewall. There is an open for this problem.

Docker CE
Docker for Windows
Docker Toolbox
Docker for Mac
Droplets
support forum
https://github.com/Squidex/squidex-hosting/tree/master/docker-compose
Caddy
MongoDB
NGINX
LetsEncrypt
MongoDB
custom image
MongoDB
https://${SQUIDEX_DOMAIN}
issue on Github
Configuration
Setup Screen
Accept self signed certificate with Chrome
Authentication Flow