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/bloembraadenand go into it. - Clone this repo to your local computer, it will create a folder
./dockergh 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 .envFill 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 -dThe 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.
The postgres docker image adds ssl certificates to the ./volumes/postgres_ssl folder so Bloembraaden can use sslmode=require in the connection string.
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.