This is the official docker image for Bloembraaden.
Bloembraaden is an open source cms for digital agencies and designers with a focus on freedom.
Read up on how Bloembraaden works on its GitHub repo.
This docker image creates a default Bloembraaden environment to begin creating your own websites.
- Create a folder on your computer where you want this project, e.g.
/path/to/bloembraaden
and go into it. - Clone this repo to your local computer, it will create a folder
./docker
gh repo clone joerivanveen/bloembraaden-docker .
- Clone the Bloembraaden repo next to your docker folder:
gh repo clone joerivanveen/bloembraaden ./bloembraaden
Still inside your Bloembraaden root folder /path/to/bloembraaden
you will create a folder for your own websites.
This folder must contain a htdocs
folder with at least an index.php
file (refer to the Bloembraaden GitHub repo). This will be your own (private) repo where you keep your client websites.
To start you can download an example (NOT YET AVAILABLE contact me).
- Create a folder for your client websites / instances:
mkdir ./bloembraaden-sites
- Create or clone your folders and files, or start with an example:
gh repo clone joerivanveen/bloembraaden-boilerplate ./bloembraaden-sites/htdocs
If you want to use a different name than bloembraaden-sites
, you need to change the references to this folder in docker-compose.yml
as well (3 times: in the nginx, php and cron containers).
Copy .env.template
to .env
, and fill in your own values. The config.json
in your ‘cron’ and ‘php’ containers will be filled once with the values from your .env
file.
cp .env.template .env
Fill in all env variables in the .env file for a complete working setup. Everytime you startup the containers, the config.json will be initialized with the values from the .env file.
docker compose up -d
The first time this will build the Bloembraaden image and install the cms.
Edit your hosts
file to point bloembraaden.local
, as well as the mandatory www
and static
subdomains to your localhost, where docker will present it for you.
You can stage client websites on subdomains to reuse the automated ssl certificate. Of course, you can point any domain to your localhost and Bloembraaden will respond, only you need to fix the ssl certificate yourself or ignore it.
127.0.0.1 bloembraaden.local
127.0.0.1 www.bloembraaden.local
127.0.0.1 static.bloembraaden.local
127.0.0.1 first-client.bloembraaden.local
Open your browser and visit bloembraaden.local
.
The automated ssl certificate is not trusted by default, you need to add it to your certificate store once.
- In your browser go to the certificate, probably via the lock in the address bar.
- Export the certificate chain (probably on the details tab there is an Export button).
- Make sure you export the entire chain, not just the certificate.
- Import the chain into your certificate store. Now your computer will trust bloembraaden.local.
You can connect to the postgres database in your IDE, for instance PhpStorm
on localhost:5432
using the POSTGRES_USER
and POSTGRES_PASSWORD
you set up in the .env
file.
This docker project will create a volumes
folder next to its docker folder, with all the volumes that are necessary for and used by Bloembraaden for your convenience.
You can safely browse and edit the contents of these folders, that will be managed by Bloembraaden as well.
This is so you can easily find the logs and the files you uploaded to see what is going on.
You can safely exclude this folder from your project. It will be recreated (but of course be empty, ie your images will be gone) when you remove it.