diff --git a/docker/docker-compose.yml b/dev/docker-compose.yml similarity index 58% rename from docker/docker-compose.yml rename to dev/docker-compose.yml index 826a239ee..f9b64e75c 100644 --- a/docker/docker-compose.yml +++ b/dev/docker-compose.yml @@ -3,7 +3,8 @@ version: "3" services: web: image: docker.io/thatonecalculator/calckey - restart: unless-stopped + build: . + restart: always depends_on: - db - redis @@ -11,45 +12,39 @@ services: ports: - "3000:3000" networks: - - calcnet -# - web - environment: - NODE_ENV: production + - network volumes: - ./files:/calckey/files - - ./config:/calckey/.config:ro + - ./.config:/calckey/.config:ro redis: - restart: unless-stopped + restart: always image: docker.io/redis:7.0-alpine networks: - - calcnet + - network volumes: - ./redis:/data db: - restart: unless-stopped + restart: always image: docker.io/postgres:12.2-alpine networks: - - calcnet + - network env_file: - - config/docker.env + - .config/docker.env volumes: - ./db:/var/lib/postgresql/data # es: -# restart: unless-stopped -# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2 -# environment: +# restart: always +# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2 +# environment: # - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # - "TAKE_FILE_OWNERSHIP=111" # networks: -# - calcnet +# - network # volumes: # - ./elasticsearch:/usr/share/elasticsearch/data networks: - calcnet: - # web: - # external: - # name: web + network: diff --git a/docker/README.md b/docker-README.md similarity index 86% rename from docker/README.md rename to docker-README.md index c782a4105..a38f784c1 100644 --- a/docker/README.md +++ b/docker-README.md @@ -3,17 +3,17 @@ ## Pre-built docker container [thatonecalculator/calckey](https://hub.docker.com/r/thatonecalculator/calckey) ## docker-compose -You can find a `docker-compose.yml` file in the same folder as this `README`, along with a folder called `config` containing two **example** files needed to get the instance running: -- config/docker.env (**db config settings**) -- config/default.yml (**calckey instance settings**) +You can find a `docker-compose.yml` file in the same folder as this `README`, along with a folder called `.config` containing two **example** files needed to get the instance running: +- .config/docker.env (**db config settings**) +- .config/default.yml (**calckey instance settings**) ## configuring calckey Rename the files: -`mv config/default_example.yml default.yml` +`mv .config/default_example.yml .config/default.yml` -`mv config/docker_example.env docker.env` +`mv .config/docker_example.env .config/docker.env` then edit them according to your environment. You can configure `docker.env` with anything you like, but you will have to pay attention to the `default.yml` file: diff --git a/docker-compose.yml b/docker-compose.yml index f9b64e75c..826a239ee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,8 +3,7 @@ version: "3" services: web: image: docker.io/thatonecalculator/calckey - build: . - restart: always + restart: unless-stopped depends_on: - db - redis @@ -12,39 +11,45 @@ services: ports: - "3000:3000" networks: - - network + - calcnet +# - web + environment: + NODE_ENV: production volumes: - ./files:/calckey/files - - ./.config:/calckey/.config:ro + - ./config:/calckey/.config:ro redis: - restart: always + restart: unless-stopped image: docker.io/redis:7.0-alpine networks: - - network + - calcnet volumes: - ./redis:/data db: - restart: always + restart: unless-stopped image: docker.io/postgres:12.2-alpine networks: - - network + - calcnet env_file: - - .config/docker.env + - config/docker.env volumes: - ./db:/var/lib/postgresql/data # es: -# restart: always -# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2 -# environment: +# restart: unless-stopped +# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2 +# environment: # - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # - "TAKE_FILE_OWNERSHIP=111" # networks: -# - network +# - calcnet # volumes: # - ./elasticsearch:/usr/share/elasticsearch/data networks: - network: + calcnet: + # web: + # external: + # name: web diff --git a/docker/config/default_example.yml b/docker/config/default_example.yml deleted file mode 100644 index c44e350be..000000000 --- a/docker/config/default_example.yml +++ /dev/null @@ -1,192 +0,0 @@ -#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -# Calckey configuration -#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ - -# ┌─────┐ -#───┘ URL └───────────────────────────────────────────────────── - -# Final accessible URL seen by a user. -url: https://example.tld/ - -# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE -# URL SETTINGS AFTER THAT! - -# ┌───────────────────────┐ -#───┘ Port and TLS settings └─────────────────────────────────── - -# -# Misskey requires a reverse proxy to support HTTPS connections. -# -# +----- https://example.tld/ ------------+ -# +------+ |+-------------+ +----------------+| -# | User | ---> || Proxy (443) | ---> | Misskey (3000) || -# +------+ |+-------------+ +----------------+| -# +---------------------------------------+ -# -# You need to set up a reverse proxy. (e.g. nginx) -# An encrypted connection with HTTPS is highly recommended -# because tokens may be transferred in GET requests. - -# The port that your Misskey server should listen on. -port: 3000 - -# ┌──────────────────────────┐ -#───┘ PostgreSQL configuration └──────────────────────────────── - -db: - host: calckey_db_1 # replace with your db container name - port: 5432 - - # Database name - db: calckey - - # Auth - user: example-calckey-user - pass: example-calckey-pass - - # Whether disable Caching queries - #disableCache: true - - # Extra Connection options - #extra: - # ssl: true - -# ┌─────────────────────┐ -#───┘ Redis configuration └───────────────────────────────────── - -redis: - host: calckey_redis_1 # replace with your redis container name - port: 6379 - #family: 0 # 0=Both, 4=IPv4, 6=IPv6 - #pass: example-pass - #prefix: example-prefix - #db: 1 - -# ┌─────────────────────────────┐ -#───┘ Elasticsearch configuration └───────────────────────────── - -#elasticsearch: -# host: localhost # replace with your elasticsearch container name -# port: 9200 -# ssl: false -# user: -# pass: - -# ┌───────────────┐ -#───┘ ID generation └─────────────────────────────────────────── - -# You can select the ID generation method. -# You don't usually need to change this setting, but you can -# change it according to your preferences. - -# Available methods: -# aid ... Short, Millisecond accuracy -# meid ... Similar to ObjectID, Millisecond accuracy -# ulid ... Millisecond accuracy -# objectid ... This is left for backward compatibility - -# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE -# ID SETTINGS AFTER THAT! - -id: 'aid' - -# ┌─────────────────────┐ -#───┘ Other configuration └───────────────────────────────────── - -# Whether disable HSTS -#disableHsts: true - -# Number of worker processes -#clusterLimit: 1 - -# Job concurrency per worker -# deliverJobConcurrency: 128 -# inboxJobConcurrency: 16 - -# Job rate limiter -# deliverJobPerSec: 128 -# inboxJobPerSec: 16 - -# Job attempts -# deliverJobMaxAttempts: 12 -# inboxJobMaxAttempts: 8 - -# IP address family used for outgoing request (ipv4, ipv6 or dual) -#outgoingAddressFamily: ipv4 - -# Syslog option -#syslog: -# host: localhost -# port: 514 - -# Proxy for HTTP/HTTPS -#proxy: http://127.0.0.1:3128 - -#proxyBypassHosts: [ -# 'example.com', -# '192.0.2.8' -#] - -# Proxy for SMTP/SMTPS -#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT -#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4 -#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5 - -# Media Proxy -#mediaProxy: https://example.com/proxy - -# Proxy remote files (default: false) -#proxyRemoteFiles: true - -#allowedPrivateNetworks: [ -# '127.0.0.1/32' -#] - -# Upload or download file size limits (bytes) -#maxFileSize: 262144000 - -# Managed hosting settings -# !!!!!!!!!! -# >>>>>> NORMAL SELF-HOSTERS, STAY AWAY! <<<<<< -# >>>>>> YOU DON'T NEED THIS! <<<<<< -# !!!!!!!!!! -# Each category is optional, but if each item in each category is mandatory! -# If you mess this up, that's on you, you've been warned... - -#maxUserSignups: 100 -#isManagedHosting: true -#deepl: -# managed: true -# authKey: '' -# isPro: false -# -#email: -# managed: true -# address: 'example@email.com' -# host: 'email.com' -# port: 587 -# user: 'example@email.com' -# pass: '' -# useImplicitSslTls: false -# -#objectStorage: -# managed: true -# baseUrl: '' -# bucket: '' -# prefix: '' -# endpoint: '' -# region: '' -# accessKey: '' -# secretKey: '' -# useSsl: true -# connnectOverProxy: false -# setPublicReadOnUpload: true -# s3ForcePathStyle: true - -# !!!!!!!!!! -# >>>>>> AGAIN, NORMAL SELF-HOSTERS, STAY AWAY! <<<<<< -# >>>>>> YOU DON'T NEED THIS, ABOVE SETTINGS ARE FOR MANAGED HOSTING ONLY! <<<<<< -# !!!!!!!!!! - -# Seriously. Do NOT fill out the above settings if you're self-hosting. -# They're much better off being set from the control panel. diff --git a/docker/config/docker_example.env b/docker/config/docker_example.env deleted file mode 100644 index fdd7e3108..000000000 --- a/docker/config/docker_example.env +++ /dev/null @@ -1,4 +0,0 @@ -# db settings -POSTGRES_PASSWORD=example-calckey-pass -POSTGRES_USER=example-calckey-user -POSTGRES_DB=calckey