Skip to content

Commit cb21983

Browse files
authored
Merge pull request #72 from backdrop-ops/1.29.2
Reverting back to our original, but updated readme document for now.
2 parents ac45674 + 8f5cb35 commit cb21983

File tree

1 file changed

+57
-187
lines changed

1 file changed

+57
-187
lines changed

README.md

+57-187
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,73 @@
1-
# What is Backdrop?
2-
3-
_**TL;DR: Backdrop is an exciting and promising way forward for organizations seeking a means of leaving legacy Drupal behind in a way that preserves their Drupal-related investments of time, energy, people and money.**_
4-
5-
Backdrop is a web application development framework most commonly configured as a Content Management System (CMS) for use by:
6-
7-
- Small & Medium Sized Enterprises (SME)
8-
- Governments & Government Departments
9-
- Non-Governmental Organizations (NGO)
10-
- Non-Profit Organizations (NPO)
11-
- Educational Institutions (EI).
12-
13-
Backdrop started off as a "fork" of an immensely popular Drupal 7. The genesis of the Backdrop CMS Project was the release of Drupal 8. That release (and every subsequent Drupal release thereafter) introduced an explosion in uncertainty, complexity and cost. Some of the key goals of Backdrop are predictability, reliability, controlled complexity and maximum compatibility with the code base of Drupal 7 - especially in terms of compatibility with Drupal 7 contributed modules and themes. There are over 16,000+ contributed Drupal 7 modules and themes, representing a near-infinite range of solutions.
14-
15-
Since 2013, Backdrop has remained true to its goals. Now, a Backdrop conversion can take a small fraction of the time and expense involved with migrating to a different CMS (usually Wordpress), using a cloud-based provider (WIX or Shopify) or even upgrading to the latest version of Drupal. Many organizations have already leveraged the power of Backdrop to move away from legacy Drupal, especially Drupal 7, in a way that they feel is the fastest, easiest and least expensive way possible.
16-
17-
The Backdrop Project was started over a decade ago. To date, its story is marked by a string of successes: It is being continually improved. It offers the latest technologies. New versions of Backdrop are released in a regular and methodical way. Backdrop releases are supported for a very long time. New (and converted) Backdrop modules and themes are arriving ever more frequently. It has a dedicated, mature, experienced and highly professional project team.
18-
19-
The latest edition of Backdrop is **1.29.2**.
1+
# Docker Official Image
202

21-
_(a full list of every docker image available for Backdrop, including legacy and alternative versions, appears at the end of this document)_
3+
https://github.com/docker-library/official-images/blob/master/library/backdrop
224

23-
# What is Docker?
24-
According to Amazon, Docker is:
5+
# Supported tags and respective `Dockerfile` links
256

26-
_"A software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime."_
7+
- [`1.29.2-apache`, `1.29.2`, `1-apache`, `1` (*1/apache/Dockerfile*)](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
8+
- [`1.29.2-fpm`, `1-fpm` (*1/fpm/Dockerfile*)](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
279

28-
# What are the Backdrop Docker Official Image(s)?
29-
The Backdrop Docker Official Images is a collection of docker images intended to enable almost anyone to quickly and easily install Backdrop for evaluation purposes. The intent of this documentation, along with the Backdrop Docker Official Images collection, is to empower regular people to be able to install Docker and use it to "spin up" an evaluation instance of Backdrop with a minimal investment of their time and money.
10+
[![](https://badge.imagelayers.io/kalabox/backdrop:latest.svg)](https://imagelayers.io/?images=kalabox/backdrop:latest 'Get your own badge on imagelayers.io')
3011

31-
# Backdrop Current Edition (latest)
32-
The current edition of Backdrop is **1.29.2**.
12+
# What is Backdrop?
3313

34-
## MAIN
35-
The **MAIN** edition of Backdrop is the one that is downloaded by Docker when nothing more specific is provided, or when special or reserved tags are used (`latest` or `backdrop`). This is the **DEFAULT** version of Backdrop that Docker installs.
14+
Backdrop is a web application development framework frequenty deployed in the guise of a Content Management System (or "website") for use by:
15+
- Primary, Secondary and Tertiary Educational Institutions
16+
- National, Regional and Municipal Governments
17+
- Small & Medium Sized Enterprises
18+
- Non-Governmental Organizations
19+
- Non-Profit Organizations
3620

37-
### ALTERNATIVE
38-
The ALTERNATIVE edition(s) of Backdrop must be speci
21+
![logo](https://backdropcms.org/files/inline-images/Backdrop-Logo-Vertical_0.png)
3922

40-
_(a complete list of MAIN & ALTERNATIVE Backdrop editions, including legacy editions, editions appears at the end of this document)_
23+
# How to use this image
4124

42-
# Tags
25+
The basic pattern for starting a `backdrop` instance is:
4326

44-
## Apache 2 (apache)
27+
```console
28+
docker run --name some-backdrop --link some-mysql:mysql -d backdrop/backdrop
29+
```
4530

46-
[`latest`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
47-
[`backdrop`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
48-
[`1.29.2-apache`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
49-
[`1.29.2`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
50-
[`1-apache`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
51-
[`1`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
31+
The following environment variables are also honored for configuring your Backdrop CMS instance:
5232

53-
Source [*Dockerfile*](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
54-
55-
## FastCGI Process Manager (fpm)
56-
[`1.29.2-fpm`](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
57-
[`1-fpm`](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
33+
- `-e BACKDROP_DB_HOST=...` (defaults to the IP and port of the linked `mysql` container)
34+
- `-e BACKDROP_DB_USER=...` (defaults to "root")
35+
- `-e BACKDROP_DB_PASSWORD=...` (defaults to the value of the `MYSQL_ROOT_PASSWORD` environment variable from the linked `mysql` container)
36+
- `-e BACKDROP_DB_NAME=...` (defaults to "backdrop")
37+
- `-e BACKDROP_DB_PORT=...` (defaults to 3306)
38+
- `-e BACKDROP_DB_DRIVER=...` (defaults to "mysql")
5839

59-
Source [*Dockerfile*](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
40+
The `BACKDROP_DB_NAME` **must already exist** on the given MySQL server. Check out the [official mysql image](https://hub.docker.com/_/mysql/) for more info on spinning up a DB.
6041

61-
# Use
62-
The fastest and easiest way to "spin up" any of the above-mentioned Backdrop containers with docker is to:
42+
If you'd like to be able to access the instance from the host without the container's IP, standard port mappings can be used:
6343

64-
1) Install docker on a host system
65-
2) Create a named directory to marshal docker-related Backdrop assets
66-
3) Create a docker startup file that references a specific Backdrop docker image
67-
4) Launch docker in such a way that it processes the startup file
44+
```console
45+
docker run --name some-backdrop --link some-mysql:mysql -p 8080:80 -d backdrop/backdrop
46+
```
6847

69-
## Step 1: Install docker on a host system
70-
[Docker's installation instructions for Windows, Mac and Linux](https://www.docker.com/get-started)
48+
Then, access it via `http://localhost:8080` or `http://host-ip:8080` in a browser.
7149

72-
## Step 2: Create a named directory to marshal docker-related Backdrop assets
73-
In this case we will create a directory named `backdrop-eval` to help assemble together some Backdrop-related docker assets
50+
If you'd like to use an external database instead of a linked `mysql` container, specify the hostname and port with `BACKDROP_DB_HOST`/`BACKDROP_DB_PORT` along with the password in `BACKDROP_DB_PASSWORD` and the username in `BACKDROP_DB_USER` (if it is something other than `root`):
7451

75-
`md backdrop-eval`
52+
```console
53+
docker run --name some-backdrop \
54+
-e BACKDROP_DB_HOST=10.1.2.3 \
55+
-e BACKDROP_DB_PORT=10432 \
56+
-e BACKDROP_DB_USER=... \
57+
-e BACKDROP_DB_PASSWORD=... \
58+
-d backdrop/backdrop
59+
```
7660

77-
`cd backdrop-eval`
61+
## ... via [`docker-compose`](https://github.com/docker/compose)
7862

79-
## Step 3: Create a docker startup file that references a specific Backdrop docker image
80-
In the `backdrop-eval` directory, create `compose.yml` file with the following contents:
63+
Example `docker-compose.yml` for `backdrop`:
8164

8265
```yaml
8366
services:
8467
backdrop:
85-
build:
86-
context: ./1/apache
68+
image: backdrop
8769
ports:
88-
- 8088:80
70+
- 8080:80
8971
environment:
9072
BACKDROP_DB_HOST: db
9173
BACKDROP_DB_USER: backdrop
@@ -100,144 +82,32 @@ services:
10082
MYSQL_DATABASE: backdrop
10183
```
10284
103-
## Step 4: Launch docker in such a way that it processes the startup file
104-
While in the `docker-eval` directory, enter the following command:
105-
106-
`docker compose up`
107-
108-
This command instructs docker to process the `compose.yml` file. The screen should immediately begin to fill with startup messages as docker composes the Backdrop runtime environment. After a minute or so, the pace of new messages should settle down, with just status messages being displayed. At this point the Backdrop installation screen should be accessible via a web browser.
85+
Run `docker-compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080`.
10986

110-
### Accessing a remote docker container
111-
If the web browser is running on a different machine than the one running docker, the Backdrop installation should be accessible at:
87+
## Adding additional libraries / extensions
11288

113-
`http://{host-ip}:8080`.
114-
115-
Where `{host-ip}` is the IP address of the machine running docker.
116-
117-
### Accessing a local docker container
118-
If the web browser is running on the same machine as docker, the Backdrop installation should be accessible at:
119-
120-
`http://localhost:8080`
121-
122-
### 'compose.yml` Embedded Credentials
123-
The credentials embedded in the `compose.yml` will be required in the Backdrop installation routine:
124-
125-
```
126-
User: backdrop
127-
Password: backdrop
128-
Database: backdrop
129-
```
89+
This image does not provide any additional PHP extensions or other libraries, even if they are required by popular plugins. There are an infinite number of possible plugins, and they potentially require any extension PHP supports. Including every PHP extension that exists would dramatically increase the image size.
13090

131-
## How to validate the docker-based backdrop runtime environment
132-
Validating that backdrop indeed constructed a valid runtime environment may be accomplished with the following command:
133-
134-
```
135-
docker ps
136-
```
137-
138-
The resulting listing should include TWO (2) docker containers, one for the database server (db), one for the CMS (backdrop).
139-
140-
## How to access the docker-based backdrop runtime environment
141-
Accessing the docker container may be accomplished with the following command:
142-
143-
```
144-
docker exec -it backdrop bash
145-
```
146-
147-
## Trying out other docker images
148-
The above `compose.yml` specifically references the `backdrop/backdrop` docker image.
91+
If you need additional PHP extensions, you'll need to create your own image `FROM` this one. The [documentation of the `php` image](https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions) explains how to compile additional extensions. Additionally, the [`drupal:7` Dockerfile](https://github.com/docker-library/drupal/blob/bee08efba505b740a14d68254d6e51af7ab2f3ea/7/Dockerfile#L6-9) has an example of doing this.
14992

150-
This is just an example to help get you started. Once you are familiar with how to "spin up" a docker image, there is nothing to stop you from trying out different docker images to find the one you like the best. A complete listing of all available backdrop docker images is available at the end of this document.
93+
The following Docker Hub features can help with the task of keeping your dependent images up-to-date:
15194

152-
# About Backdrop
153-
![logo](https://backdropcms.org/files/inline-images/Backdrop-Logo-Vertical_0.png)
95+
- [Automated Builds](https://docs.docker.com/docker-hub/builds/) let Docker Hub automatically build your Dockerfile each time you push changes to it.
96+
- [Repository Links](https://docs.docker.com/docker-hub/builds/#repository-links) can ensure that your image is also rebuilt any time `drupal` is updated.
15497

15598
# License
15699

157100
View [license information](https://www.drupal.org/licensing/faq) for the software contained in this image.
158101

159-
# Feedback
160-
161-
## Issue Queue(s)
162-
- [Backdrop CMS Core Issue Queue](https://github.com/backdrop/backdrop-issues/issues)
163-
- [Backdrop CMS Contrib at Github.com](https://github.com/backdrop-contrib) - Each contrib project has it's own issue queue.
102+
# User Feedback
164103

165104
## Documentation
166105
- [Backdrop CMS Documentation](https://docs.backdropcms.org/)
167106

107+
## Issues
108+
- [Backdrop CMS Core Issue Queue](https://github.com/backdrop/backdrop-issues/issues)
109+
- [Backdrop CMS Contrib at Github.com](https://github.com/backdrop-contrib) - Each contrib project has it's own issue queue.
110+
168111
## Contributing
169112
- [Contribute to the Backdrop CMS Open Source Project](https://docs.backdropcms.org/documentation/contributors-guide)
170113

171-
## Official Docker Image
172-
173-
https://github.com/docker-library/official-images/blob/master/library/backdrop
174-
175-
# Expert Mode
176-
177-
## Installing additional libraries & extensions
178-
These images do not provide any additional PHP extensions or other libraries, even if they are required by popular plugins. There are an infinite number of possible plugins, and they potentially require any extension PHP supports. Including every PHP extension that exists would dramatically increase the image size.
179-
180-
## Generating your own docker image(s)
181-
If you need additional PHP extensions, you'll need to create your own image `FROM` this one. The [documentation of the `php` image](https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions) explains how to compile additional extensions. Additionally, the [`drupal:7` Dockerfile](https://github.com/docker-library/drupal/blob/bee08efba505b740a14d68254d6e51af7ab2f3ea/7/Dockerfile#L6-9) has an example of doing this.
182-
183-
The following Docker Hub features can help with the task of keeping your dependent images up-to-date:
184-
185-
- [Automated Builds](https://docs.docker.com/docker-hub/builds/) let Docker Hub automatically build your Dockerfile each time you push changes to it.
186-
- [Repository Links](https://docs.docker.com/docker-hub/builds/#repository-links) can ensure that your image is also rebuilt any time `drupal` is updated.
187-
188-
## Launching backdrop manually using `docker run` commands
189-
190-
### MySQL
191-
NOTE: A pre-configured database server must already exist before a backdrop container can be launched.
192-
193-
Check out the [official mysql image](https://hub.docker.com/_/mysql/) for more info on spinning up a DB.
194-
195-
## Backdrop
196-
The basic pattern for starting a `backdrop` instance (given that the `BACKDROP_DB_NAME` **already exists** on a running MySQL server container) is:
197-
198-
```console
199-
docker run --name some-backdrop --link some-mysql:mysql -d backdrop/backdrop
200-
```
201-
202-
The following environment variables are also honored for configuring your Backdrop CMS instance:
203-
204-
- `-e BACKDROP_DB_HOST=...` (defaults to the IP and port of the linked `mysql` container)
205-
- `-e BACKDROP_DB_USER=...` (defaults to "root")
206-
- `-e BACKDROP_DB_PASSWORD=...` (defaults to the value of the `MYSQL_ROOT_PASSWORD` environment variable from the linked `mysql` container)
207-
- `-e BACKDROP_DB_NAME=...` (defaults to "backdrop")
208-
- `-e BACKDROP_DB_PORT=...` (defaults to 3306)
209-
- `-e BACKDROP_DB_DRIVER=...` (defaults to "mysql")
210-
211-
212-
If you'd like to be able to access the instance from the host without the container's IP, standard port mappings can be used:
213-
214-
```console
215-
docker run --name some-backdrop --link some-mysql:mysql -p 8080:80 -d backdrop/backdrop
216-
```
217-
218-
Then, access it via `http://localhost:8080` or `http://host-ip:8080` in a browser.
219-
220-
If you'd like to use an external database instead of a linked `mysql` container, specify the hostname and port with `BACKDROP_DB_HOST`/`BACKDROP_DB_PORT` along with the password in `BACKDROP_DB_PASSWORD` and the username in `BACKDROP_DB_USER` (if it is something other than `root`):
221-
222-
```console
223-
docker run --name some-backdrop \
224-
-e BACKDROP_DB_HOST=10.1.2.3 \
225-
-e BACKDROP_DB_PORT=10432 \
226-
-e BACKDROP_DB_USER=... \
227-
-e BACKDROP_DB_PASSWORD=... \
228-
-d backdrop/backdrop
229-
```
230-
231-
# Backdrop Dockerfile archive
232-
_([please review release notes before deploying](https://github.com/backdrop/backdrop/releases))_
233-
## 1.30.0 (coming Januaray 2025)
234-
`1.30.2-apache`
235-
`1.30.2-fpm`
236-
237-
## 1.29.2
238-
[`1.29.2-apache`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
239-
[`1.29.2-fpm`](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
240-
241-
## 1.29.1
242-
`1.29.1-apache`
243-
`1.29.1-fpm`

0 commit comments

Comments
 (0)