From 4a4437683eb1de1c16f113968195e018764c8777 Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Fri, 23 Apr 2021 14:57:04 +0200 Subject: [PATCH] Added Monica config --- firefly/docker-compose.yml | 1 + monica/.env.example | 168 +++++++++++++++++++++++++++++++++++++ monica/docker-compose.yml | 58 +++++++++++++ 3 files changed, 227 insertions(+) create mode 100644 monica/.env.example create mode 100644 monica/docker-compose.yml diff --git a/firefly/docker-compose.yml b/firefly/docker-compose.yml index 694ecb9..db2d902 100644 --- a/firefly/docker-compose.yml +++ b/firefly/docker-compose.yml @@ -50,6 +50,7 @@ services: redis: image: 'redis:6.0.12-alpine' restart: 'always' + healthcheck: test: 'redis-cli -h localhost ping' interval: '10s' diff --git a/monica/.env.example b/monica/.env.example new file mode 100644 index 0000000..27ad3e7 --- /dev/null +++ b/monica/.env.example @@ -0,0 +1,168 @@ +# +# Welcome, friend ❤. Thanks for trying out Monica. We hope you'll have fun. +# + +# Two choices: local|production. Use local if you want to install Monica as a +# development version. Use production otherwise. +APP_ENV=production + +# true if you want to show debug information on errors. For production, put this +# to false. +APP_DEBUG=false + +# The encryption key. This is the most important part of the application. Keep +# this secure otherwise, everyone will be able to access your application. +# Must be 32 characters long exactly. +# Use `php artisan key:generate` or `pwgen -s 32 1` to generate a random key. +APP_KEY=ChangeMeBy32KeyLengthOrGenerated + +# Prevent information leakage by referring to IDs with hashIds instead of +# the actual IDs used in the database. +HASH_SALT=ChangeMeBy20+KeyLength +HASH_LENGTH=18 + +# The URL of your application. +APP_URL=http://localhost + +# Force using APP_URL as base url of your application. +# You should not need this, unless you are using subdirectory config. +APP_FORCE_URL=false + +# Database information +# To keep this information secure, we urge you to change the default password +# Currently only "mysql" compatible servers are working +DB_CONNECTION=mysql +DB_HOST=db +DB_PORT=3306 +# You can use mysql unix socket if available, it overrides DB_HOST and DB_PORT values. +#DB_UNIX_SOCKET=/var/run/mysqld/mysqld.sock +DB_DATABASE=monica +DB_USERNAME=monica +DB_PASSWORD=monica +DB_PREFIX= +DB_TEST_HOST=127.0.0.1 +DB_TEST_DATABASE=monica_test +DB_TEST_USERNAME=homestead +DB_TEST_PASSWORD=secret + +# Use utf8mb4 database charset format to support emoji characters +# ⚠ be sure your DBMS supports utf8mb4 format +DB_USE_UTF8MB4=true + +# Mail credentials used to send emails from the application. +MAIL_MAILER=smtp +MAIL_HOST=mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME= +MAIL_PASSWORD= +MAIL_ENCRYPTION= +# Outgoing emails will be sent with these identity +MAIL_FROM_ADDRESS= +MAIL_FROM_NAME="Monica instance" +# New registration notification sent to this email +APP_EMAIL_NEW_USERS_NOTIFICATION= + +# Ability to disable signups on your instance. +# Can be true or false. Default to false. +APP_DISABLE_SIGNUP=true + +# Enable user email verification. +APP_SIGNUP_DOUBLE_OPTIN=false + +# Set trusted proxy IP addresses. +# To trust all proxies that connect directly to your server, use a "*". +# To trust one or more specific proxies that connect directly to your server, +# use a comma separated list of IP addresses. +APP_TRUSTED_PROXIES=* + +# Enable automatic cloudflare trusted proxy discover +APP_TRUSTED_CLOUDFLARE=false + +# Frequency of creation of new log files. Logs are written when an error occurs. +# Refer to config/logging.php for the possible values. +LOG_CHANNEL=daily + +# Error tracking. Specific to hosted version on .com. You probably don't need +# those. +SENTRY_SUPPORT=false +SENTRY_LARAVEL_DSN= + +# Send a daily ping to https://version.monicahq.com to check if a new version +# is available. When a new version is detected, you will have a message in the +# UI, as well as the release notes for the new changes. Can be true or false. +# Default to true. +CHECK_VERSION=true + +# Cache, session, and queue parameters +# ⚠ Change this only if you know what you are doing +#. Cache: database, file, memcached, redis, dynamodb +#. Session: file, cookie, database, apc, memcached, redis, array +#. Queue: sync, database, beanstalkd, sqs, redis +# If Queue is not set to 'sync', you'll have to set a queue worker +# See https://laravel.com/docs/5.7/queues#running-the-queue-worker +CACHE_DRIVER=redis +SESSION_DRIVER=file +SESSION_LIFETIME=120 +QUEUE_CONNECTION=sync + +# If you use redis, set the redis host or ip, like: +REDIS_HOST=redis + +# Maximum allowed size for uploaded files, in kilobytes. +# Make sure this is an integer, without commas or spaces. +DEFAULT_MAX_UPLOAD_SIZE=10240 + +# Maximum allowed storage size per account, in megabytes. +# Make sure this is an integer, without commas or spaces. +DEFAULT_MAX_STORAGE_SIZE=512 + +# Default filesystem to store uploaded files. +# Possible values: public|s3 +DEFAULT_FILESYSTEM=public + +# AWS keys for S3 when using this storage method +AWS_KEY= +AWS_SECRET= +AWS_REGION=us-east-1 +AWS_BUCKET= +AWS_SERVER= + +# Allow Two Factor Authentication feature on your instance +MFA_ENABLED=true + +# Enable DAV support +DAV_ENABLED=true + +# CLIENT ID and SECRET used for OAuth authentication +PASSPORT_PERSONAL_ACCESS_CLIENT_ID= +PASSPORT_PERSONAL_ACCESS_CLIENT_SECRET= + +# Allow to access general statistics about your instance through a public API +# call +ALLOW_STATISTICS_THROUGH_PUBLIC_API_ACCESS=false + +# Indicates that each user in the instance must comply to international policies +# like CASL or GDPR +POLICY_COMPLIANT=true + +# Enable geolocation services +# This is used to translate addresses to GPS coordinates. +ENABLE_GEOLOCATION=false + +# API key for geolocation services +# We use LocationIQ (https://locationiq.com/) to translate addresses to +# latitude/longitude coordinates. We could use Google instead but we don't +# want to give anything to Google, ever. +# LocationIQ offers 10,000 free requests per day. +LOCATION_IQ_API_KEY= + +# Enable weather on contact profile page +# Weather can only be fetched if we know longitude/latitude - this is why +# you also need to activate the geolocation service above to make it work +ENABLE_WEATHER=false + +# Access to weather data from darksky api +# https://darksky.net/dev/register +# Darksky provides an api with 1000 free API calls per day +# You need to enable the weather above if you provide an API key here. +DARKSKY_API_KEY= diff --git a/monica/docker-compose.yml b/monica/docker-compose.yml new file mode 100644 index 0000000..87a1ff4 --- /dev/null +++ b/monica/docker-compose.yml @@ -0,0 +1,58 @@ +version: '2.8' + +services: + app: + image: 'monica:2.20.0-apache' + restart: 'always' + + healthcheck: + test: 'curl -f localhost:8080 || exit 1' + interval: '1m' + timeout: '10s' + retries: 3 + start_period: '10s' + depends_on: + db: + condition: 'service_started' + redis: + condition: 'service_healthy' + + env_file: + - '.env' + networks: + - 'default' + - 'nginx' + volumes: + - 'data:/var/www/html/storage' + + db: + image: 'mysql:8.0.24' + restart: 'always' + command: '--default-authentication-plugin=mysql_native_password' + + environment: + - 'MYSQL_RANDOM_ROOT_PASSWORD=true' + - 'MYSQL_DATABASE=monica' + - 'MYSQL_USER=monica' + - 'MYSQL_PASSWORD=monica' + + volumes: + - 'db-data:/var/lib/mysql' + + redis: + image: 'redis:6.0.12-alpine' + restart: 'always' + + healthcheck: + test: 'redis-cli -h localhost ping' + interval: '10s' + timeout: '5s' + retries: 3 + +networks: + nginx: + external: true + +volumes: + data: + db-data: