Giter VIP home page Giter VIP logo

docker's Introduction

Docker ChurchCRM

This is the Docker Installation of ChurchCRM. This image is the latest release ChurchCRM for Docker. It is installed on Alpine Linux, Apache, PHP7 & is using MariaDB in a separate Alpine container.

How To Use

To use, first change your desired database info and passwords in the .env file. (Download that file from the main ChurchCRM/Docker repository directory)

Once complete, Start ChurchCRM in Docker by using the Docker RUN command from the directory that your .env file resides or by building and starting with docker-compose.

Starting with Docker Run

For example, you can start MariaDB first with the following command. Make sure to change the passwords in the .env file first.

docker run --name database --env-file .env -d jaskipper/alpine-mariadb

Then start the ChurchCRM container:

docker run --name churchcrm -p 80:80 --link database --env-file .env -d churchcrm/crm

Visit your website and you will be up and running. Log in with the default username admin and password changeme and then change your admin password on the next screen.

Building and Starting with Docker-Compose

To build and run with Docker-Compose, you must have all of the files in the Github repo. Download the Github Docker repository and run docker-compose build and docker-compose up from the project folder. Be SURE to Change Passwords in the .env file before starting your container.

Environment variables used in the container

It is recommended that you use the .env file to add your passwords, but you may also add those ENV's with the -e flag with docker run -e ....

MYSQL_DB_HOST

This variable defines the host in order for ChurchCRM to be able to connect to the database.

-e MYSQL_DB_HOST=database *(This is default and recommended to stay that way unless you know what you are doing)*

MYSQL_ROOT_PASSWORD

This variable defines the password for the root user in the database, set it with

-e MYSQL_ROOT_PASSWORD=secretpassword

add quotes if there is spaces or other special character in the password

-e MYSQL_ROOT_PASSWORD='password with spaces'

MYSQL_RANDOM_ROOT_PASSWORD

This variable generate a random password for the root user, add

-e MYSQL_RANDOM_ROOT_PASSWORD=yes

the password can then be found by looking at the logoutput

docker logs <container>

MYSQL_ALLOW_EMPTY_PASSWORD

This allows the root password to be blank, THIS IS A MAJOR SECURITY RISK, add

-e MYSQL_ALLOW_EMPTY_PASSWORD=yes

MYSQL_REMOTE_ROOT

Normal the root user can only use localhost to access the databases adding

-e MYSQL_REMOTE_ROOT=yes

allows root access from any host

MYSQL_DATABASE

creates a database with the defined name

-e MYSQL_DATABASE=databasename

MYSQL_USER

creates a user with password defined with MYSQL_PASSWORD and full access to the database defined by MYSQL_DATABASE

-e MYSQL_USER=username

MYSQL_PASSWORD

The password for the user defined by MYSQL_USER

-e MYSQL_PASSWORD=donottell

CHURCHCRM_ADMIN

To come...

CHURCHCRM_PASSWORD

To come...

docker's People

Contributors

crossan007 avatar dawoudio avatar jaskipper avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker's Issues

Backup Error

Hi, I am having the below error when performing backup.
Error making API Call to: /api/database/backup
Error text: Cannot compress entire archive with gzip, enable ext/zlib in php.ini

May I know how to edit php.ini in ChurchCRM Docker?

Move secrets out of ENV.

Secrets are tricky to do well. But it seems that many think having them in the ENV is a bad idea.

Some opinion around the issue.

I propose that config is stored in the ENV, but Secrets are moved to files that are mounted as volumes with restricted access. This is basically how Dockers own Secrets system works.

Some guidance as to why this is a good idea.

Basically, this would mean that a file represents either one secret, or a bunch of secrets are stored in one file. Mariadb/Mysql already supports reading secrets from a file.

The official MariaDB allows the use of secrets.

Docker-Compose Fail

System:
Windows 10 Home, Docker Tools 64

After changing the default passwords, I tried to build and receive this error

Step 1 : FROM jaskipper/alpine-apache-php7
 ---> 78ccb0ae3896
Step 2 : MAINTAINER ChurchCRM
 ---> Using cache
 ---> 363192a154e7
Step 3 : RUN apk update && apk upgrade &&     printf "Build of skipper/alpine-apache, date: %s\n"  `date -u +"%Y-%m-%dT%H:%M:%SZ"` >> /etc/BUILD
 ---> Running in 162d40fcaabf
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
fetch http://dl-4.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
fetch http://dl-4.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
fetch https://nl.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
v3.4.6-44-g5076b2f [http://dl-cdn.alpinelinux.org/alpine/v3.4/main]
v3.4.6-33-g38ef2d2 [http://dl-cdn.alpinelinux.org/alpine/v3.4/community]
v3.5.0-446-gfb41b70411 [http://dl-4.alpinelinux.org/alpine/edge/community]
v3.5.0-444-gca2e022e48 [http://dl-4.alpinelinux.org/alpine/edge/testing]
v3.5.0-446-gfb41b70411 [https://nl.alpinelinux.org/alpine/edge/main]
OK: 15830 distinct packages available
ERROR: unsatisfiable constraints:
  icu-libs-58.2-r1:
    masked in: @edge
    satisfies:
               php7-intl-7.0.14-r5[so:libicui18n.so.58]
               php7-intl-7.0.14-r5[so:libicuio.so.58]
               php7-intl-7.0.14-r5[so:libicuuc.so.58]

�[31mERROR�[0m: Service 'churchcrm' failed to build: The command '/bin/sh -c apk update && apk upgrade &&     printf "Build of skipper/alpine-apache, date: %s\n"  `date -u +"%Y-%m-%dT%H:%M:%SZ"` >> /etc/BUILD' returned a non-zero code: 2

Any Ideas as to the issue?

Application Prerequisites

Use docker image branch crm-docker-rewrite
build Dockerfile need add php7-zip

rewrite issue at AppIntegrityService.php
it will send to nginx server, but churchcrm docker image apache don't send the port information.

SSH by default

I think this should [also | exclusively] listen on SSH by default with a self signed cert.

It'll throw some warnings at user's browsers, but it should be secure by default

What does docker have in the way of cert utilities?

Fresh Install Missing mysqli

Hey,

I've tried a new install and I'm getting the following error:

PHP Fatal error: Uncaught Error: Call to undefined function mysqli_connect()

Seems the image is missing msqli?

More here: ChurchCRM/CRM#810

Docker Image is out of date

We are about to release 3.0.0, and it is unclear how to make a new build with this repo. The current build is 2.7.5 which is over a year old.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.