Browse Source

Merge pull request #1663 from asbiin/monica

Add Monica doc
Tianon Gravi 5 years ago
parent
commit
8e74dbcc37
6 changed files with 213 additions and 0 deletions
  1. 1 0
      monica/README-short.txt
  2. 209 0
      monica/content.md
  3. 1 0
      monica/github-repo
  4. 1 0
      monica/license.md
  5. BIN
      monica/logo.jpg
  6. 1 0
      monica/maintainer.md

+ 1 - 0
monica/README-short.txt

@@ -0,0 +1 @@
+Monica – the Personal Relationship Manager.

+ 209 - 0
monica/content.md

@@ -0,0 +1,209 @@
+# What is Monica?
+
+Monica is a great open source personal relationship management system to organize the interactions with your loved ones.
+
+%%LOGO%%
+
+# How to use this image
+
+There are two versions of the image you may choose from.
+
+The `apache` tag contains a full Monica installation with an apache webserver. This points to the default `latest` tag too.
+
+The `fpm` tag contains a fastCGI-Process that serves the web pages. This image should be combined with a webserver used as a proxy, like apache or nginx.
+
+### Using the apache image
+
+This image contains a webserver that exposes port 80. Run the container with:
+
+```console
+docker run --name some-%%REPO%% -d -p 80:80 %%IMAGE%%
+```
+
+### Using the fpm image
+
+This image serves a fastCGI server that exposes port 9000. You may need an additional web server that can proxy requests to the fpm port 9000 of the container. Run this container with:
+
+```console
+docker run --name some-%%REPO%% -d -p 9000:9000 %%IMAGE%%:fpm
+```
+
+### Persistent data storage
+
+To have a persistent storage for your datas, you may want to create volumes for your db, and for monica you will have to save the `/var/www/html/storage` directory.
+
+Run a container with this named volume:
+
+```console
+docker run -d \
+        -v monica_data:/var/www/html/storage \
+        %%IMAGE%%
+```
+
+### Run commands inside the container
+
+Like every Laravel application, the `php artisan` command is very usefull for Monica. To run a command inside the container, run
+
+```console
+docker exec CONTAINER_ID php artisan COMMAND
+```
+
+or for docker-compose
+
+```console
+docker-compose exec %%REPO%% php artisan COMMAND
+```
+
+where `%%REPO%%` is the name of the service in your `docker-compose.yml` file.
+
+## Running the image with docker-compose
+
+See some examples of docker-compose possibilities in the [example section](%%GITHUB-REPO%%/blob/master/.examples).
+
+---
+
+### Apache version
+
+This version will use the apache image and add a mysql container. The volumes are set to keep your data persistent. This setup provides **no ssl encryption** and is intended to run behind a proxy.
+
+Make sure to pass in values for `APP_KEY` variable before you run this setup.
+
+1.	Create a `docker-compose.yml` file
+
+	```yaml
+	version: "3.4"
+
+	services:
+	  app:
+	    image: monica
+	    depends_on:
+	      - db
+	    ports:
+	      - 8080:80
+	    environment:
+	      - APP_KEY=
+	      - DB_HOST=db
+	    volumes:
+	      - data:/var/www/html/storage
+	    restart: always
+
+	  db:
+	    image: mysql:5.7
+	    environment:
+	      - MYSQL_RANDOM_ROOT_PASSWORD=true
+	      - MYSQL_DATABASE=monica
+	      - MYSQL_USER=homestead
+	      - MYSQL_PASSWORD=secret
+	    volumes:
+	      - mysql:/var/lib/mysql
+	    restart: always
+
+	volumes:
+	  data:
+	    name: data
+	  mysql:
+	    name: mysql
+	```
+
+2.	Set a value for `APP_KEY` variable before you run this setup. It should be a random 32-character string. For example, if you have the `pwgen` utility installed, you can copy and paste the output of:
+
+	```console
+	pwgen -s 32 1
+	```
+
+3.	Run
+
+	```console
+	docker-compose up -d
+	```
+
+	Wait until all migrations are done and then access Monica at http://localhost:8080/ from your host system. If this looks ok, add your first user account.
+
+4.	Run this command once:
+
+	```console
+	docker-compose exec app php artisan setup:production
+	```
+
+### FPM version
+
+When using FPM image, you will need another container with a webserver to proxy http requests. In this example we use nginx with a basic container to do this.
+
+1.	Download `nginx.conf` and `Dockerfile` file for nginx image. An example can be found on the [`example section`](%%GITHUB-REPO%%/blob/master/.examples/supervisor/fpm/web/). The `web` container image should be pre-build before each deploy with: `docker-compose build`
+
+2.	Create a `docker-compose.yml` file
+
+	```yaml
+	version: "3.4"
+
+	services:
+	  app:
+	    image: monica:fpm
+	    depends_on:
+	      - db
+	    environment:
+	      - APP_KEY=
+	      - DB_HOST=db
+	    volumes:
+	      - data:/var/www/html/storage
+	    restart: always
+
+	  web:
+	    build: ./web
+	    ports:
+	      - 8080:80
+	    depends_on:
+	      - app
+	    volumes:
+	      - data:/var/www/html/storage:ro
+	    restart: always
+
+	  db:
+	    image: mysql:5.7
+	    environment:
+	      - MYSQL_RANDOM_ROOT_PASSWORD=true
+	      - MYSQL_DATABASE=monica
+	      - MYSQL_USER=homestead
+	      - MYSQL_PASSWORD=secret
+	    volumes:
+	      - mysql:/var/lib/mysql
+	    restart: always
+
+	volumes:
+	  data:
+	    name: data
+	  mysql:
+	    name: mysql
+	```
+
+3.	Set a value for `APP_KEY` variable before you run this setup. It should be a random 32-character string. For example, if you have the `pwgen` utility installed, you can copy and paste the output of:
+
+	```console
+	pwgen -s 32 1
+	```
+
+4.	Run
+
+	```console
+	docker-compose up -d
+	```
+
+	Wait until all migrations are done and then access Monica at http://localhost:8080/ from your host system. If this looks ok, add your first user account.
+
+5.	Run this command once:
+
+	```console
+	docker-compose exec app php artisan setup:production
+	```
+
+## Make Monica available from the internet
+
+To expose your Monica instance for the internet, it's important to set environment variable `APP_ENV=production`. In this case `https` mode will be mandatory.
+
+### Using a proxy webserver on the host
+
+One way to expose your Monica instance is to use a proxy webserver from your host with SSL capabilities. This is possible with a reverse proxy.
+
+### Using a proxy webserver container
+
+See some examples of docker-compose possibilities in the [example section](%%GITHUB-REPO%%/blob/master/.examples) to show how to a proxy webserver with ssl capabilities.

+ 1 - 0
monica/github-repo

@@ -0,0 +1 @@
+https://github.com/monicahq/docker

+ 1 - 0
monica/license.md

@@ -0,0 +1 @@
+View [license information](https://github.com/monicahq/monica/blob/master/LICENSE) for the software contained in this image.

BIN
monica/logo.jpg


+ 1 - 0
monica/maintainer.md

@@ -0,0 +1 @@
+[Monica Team](%%GITHUB-REPO%%)