init
This commit is contained in:
parent
84bc9bbec6
commit
03ced1a26a
|
|
@ -6,17 +6,10 @@
|
||||||
*.sln
|
*.sln
|
||||||
__pycache__
|
__pycache__
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
.idea/*
|
||||||
|
.vs/*
|
||||||
|
|
||||||
.env
|
.env
|
||||||
docker-compose.override.yml
|
docker-compose.override.yml
|
||||||
|
|
||||||
.idea/*
|
|
||||||
.vs/*
|
|
||||||
volumes/*
|
volumes/*
|
||||||
|
|
||||||
medicine/.env
|
|
||||||
medicine/docker-compose.override.yml
|
|
||||||
medicine/volumes/*
|
|
||||||
|
|
||||||
medicine-stack/volumes/*
|
|
||||||
thirdparty-apps/volumes/*
|
|
||||||
|
|
|
||||||
84
Readme.md
84
Readme.md
|
|
@ -1,84 +0,0 @@
|
||||||
|
|
||||||
### Решение проблем
|
|
||||||
|
|
||||||
> Error saving credentials: error storing credentials - err: exit status 1, out: `Cannot autolaunch D-Bus without X11 $DISPLAY`
|
|
||||||
|
|
||||||
`> sudo apt remove golang-docker-credential-helpers`
|
|
||||||
|
|
||||||
> Git ignore rights
|
|
||||||
|
|
||||||
` > git config core.fileMode false`
|
|
||||||
|
|
||||||
|
|
||||||
### Ключи
|
|
||||||
|
|
||||||
#### Добавление ключика на удаленный сервер (root)
|
|
||||||
|
|
||||||
ssh-copy-id -i ~/.ssh/medlogic_awx_rsa.pub -p 22 root@remote
|
|
||||||
|
|
||||||
|
|
||||||
#### Добавление ключика на удаленный сервер (no root)
|
|
||||||
|
|
||||||
cat ~/.ssh/medlogic_awx_rsa.pub | ssh user@remote "sudo cat >> /root/.ssh/authorized_keys"
|
|
||||||
|
|
||||||
|
|
||||||
### Настройка сервера
|
|
||||||
> vim /etc/ssh/sshd_config
|
|
||||||
|
|
||||||
PermitRootLogin without-password
|
|
||||||
|
|
||||||
# Авторизация по паролю root
|
|
||||||
PermitRootLogin yes
|
|
||||||
|
|
||||||
PubkeyAuthentication yes
|
|
||||||
|
|
||||||
> service ssh restart
|
|
||||||
|
|
||||||
### Обратный ssh
|
|
||||||
на удаленном сервере
|
|
||||||
|
|
||||||
ssh -R 40022:localhost:22 proxy_user@188.225.79.4
|
|
||||||
|
|
||||||
на доступном сервере
|
|
||||||
|
|
||||||
ssh localhost -p 40022
|
|
||||||
|
|
||||||
|
|
||||||
### Crontab tasks
|
|
||||||
PATH=/usr/bin:/bin:/usr/local/bin
|
|
||||||
00 21 * * * /root/medicine-config/update_repository.sh
|
|
||||||
00 22 * * * /root/medicine-config/medicine/backup_database.sh
|
|
||||||
00 23 * * * /root/medicine-config/medicine/update.sh
|
|
||||||
00 22 * * * /root/medicine-config/medicine-remd/backup_database.sh
|
|
||||||
30 23 * * * /root/medicine-config/medicine-remd/update.sh
|
|
||||||
00 00 * * * /root/medicine-config/scripts/docker-cleanup.sh
|
|
||||||
|
|
||||||
00 21 * * * /root/medicine-config/update_repository.sh
|
|
||||||
00 22 * * * /root/medicine-config/medicine/backup_database.sh
|
|
||||||
00 23 * * * /root/medicine-config/medicine/update.sh
|
|
||||||
00 00 * * * /root/medicine-config/scripts/docker-cleanup.sh
|
|
||||||
|
|
||||||
0 * * * * sudo vipnetclient info
|
|
||||||
|
|
||||||
* * * * * /root/medicine-config/scripts/crontab-check.sh >> /var/log/crontab-check.log 2>&1
|
|
||||||
|
|
||||||
sudo timedatectl set-timezone Asia/Vladivostok
|
|
||||||
|
|
||||||
# /etc/hosts
|
|
||||||
> sudo vim /etc/hosts
|
|
||||||
89.223.70.16 docker.med-logic.ru git.med-logic.ru
|
|
||||||
|
|
||||||
# change git url
|
|
||||||
|
|
||||||
git remote set-url origin https://git.med-logic.ru/ilya.muhortov/medicine-config.git && git pull
|
|
||||||
|
|
||||||
### Перенос данных
|
|
||||||
scp -r /var/lib/docker/volumes/medicine_medicine-public-data/_data root@hostname:/var/lib/docker/volumes/medicine_medicine-public-data
|
|
||||||
|
|
||||||
# Разное
|
|
||||||
|
|
||||||
curl -iv --tlsv1.2 https://docker.med-logic.ru/
|
|
||||||
|
|
||||||
# Копирование в бэкапов в папку
|
|
||||||
|
|
||||||
rsync -avh /root/medicine-backups /root/remote-backups/
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "readonly" | docker login docker.med-logic.ru --username readonly --password-stdin
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-remd:latest
|
|
||||||
|
|
||||||
read -r -p "Create database? [y/N] " response
|
|
||||||
if [[ $response =~ ^[Yy](es)?$ ]]; then
|
|
||||||
docker exec medicine-stack-postgres psql -c 'CREATE DATABASE medicine_remd' --username=postgres
|
|
||||||
fi
|
|
||||||
|
|
||||||
read -p "Enter organization name: " ORGANIZATION_NAME
|
|
||||||
|
|
||||||
SECRET_KEY=$(openssl rand -base64 32)
|
|
||||||
|
|
||||||
cat <<EOT >> /root/medicine-config/medicine-remd/.env
|
|
||||||
|
|
||||||
SECRET_KEY=$SECRET_KEY
|
|
||||||
|
|
||||||
SENTRY_ENABLED='True'
|
|
||||||
|
|
||||||
SENTRY_SERVER_NAME=$ORGANIZATION_NAME
|
|
||||||
|
|
||||||
EOT
|
|
||||||
|
|
||||||
cd /root/medicine-config/medicine-remd
|
|
||||||
docker-compose run --rm medicine-remd python manage.py migrate
|
|
||||||
docker-compose run --rm medicine-remd python manage.py post_install
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
apt install --assume-yes autossh
|
|
||||||
ssh-keygen -f ~/.ssh/proxy-server -N ''
|
|
||||||
ssh-copy-id -i ~/.ssh/proxy-server.pub -p 22 proxy_user@188.225.79.4
|
|
||||||
|
|
||||||
read -p "Enter port for proxy server: " proxy_port
|
|
||||||
|
|
||||||
cat <<EOT >> /etc/systemd/system/remote-autossh.service
|
|
||||||
[Unit]
|
|
||||||
Description=AutoSSH service for remote tunnel
|
|
||||||
After=network-online.target
|
|
||||||
Wants=network-online.target systemd-networkd-wait-online.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=root
|
|
||||||
Restart=on-failure
|
|
||||||
RestartSec=1min
|
|
||||||
ExecStart=/usr/bin/autossh -N -R $proxy_port:localhost:22 -i /root/.ssh/proxy-server proxy_user@188.225.79.4
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOT
|
|
||||||
|
|
||||||
systemctl daemon-reload && systemctl start remote-autossh
|
|
||||||
systemctl enable remote-autossh.service
|
|
||||||
|
|
||||||
cat <<EOT >> /root/.ssh/authorized_keys
|
|
||||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyPQET8KBriZjuB1PiFtBYtGZJphivZWHT4JtGJNDLpwxyUgK6ZzVrF5MvJ27eQBoM1pMxzVl3XWwgxo1BQkCGIsqERwZ5/onfsWTH/COyuZeNmL5NF3NYLjoSF9a0zwHpEQxeLGf+3qQrEfTOZKuPelc/8kmQjYDPo97Ow3d+6LA9Mlhe2S7pYsvVgGy+XjGnegRZddAZu6vnDCGrDbfSgeW0KTQCLhGmtQao99SRxUOlqHfU13x9IZAHldikbhWbXxgc1+1CH/1iYbRqnVdgAAyJzguFIkAJGKzEnLiwHVgJF1Gf85FItF8KaNHCIv5T7RPBvFUIN/gw3QO/jTxJ root@1041123-muhortov1.tmweb.ru
|
|
||||||
EOT
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
cd /root/medicine-config/thirdparty-apps
|
|
||||||
docker-compose pull
|
|
||||||
docker-compose build
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -0,0 +1,117 @@
|
||||||
|
|
||||||
|
listenAddressSingleHTTPFrontend: 0.0.0.0:1337
|
||||||
|
logLevel: "INFO"
|
||||||
|
showNavigation: false
|
||||||
|
pageTitle: МИС "Медицина"
|
||||||
|
showFooter: false
|
||||||
|
|
||||||
|
actionGroups:
|
||||||
|
- title: МИС
|
||||||
|
icon: 🏥
|
||||||
|
actions:
|
||||||
|
- mis-install
|
||||||
|
- mis-restart
|
||||||
|
- mis-update
|
||||||
|
|
||||||
|
- title: Обслуживание
|
||||||
|
icon: 🛠️
|
||||||
|
actions:
|
||||||
|
- ping-sync
|
||||||
|
- ping-docker
|
||||||
|
- check-disk-space
|
||||||
|
|
||||||
|
actions:
|
||||||
|
- id: mis-install
|
||||||
|
title: Установить
|
||||||
|
icon: box
|
||||||
|
popupOnStart: execution-dialog-stdout-only
|
||||||
|
shell: /config/medicine-install.sh "{{ organization_name }}" "{{ organization_id }}" "{{ http_port }}" "{{ https_port }}"
|
||||||
|
timeout: 600
|
||||||
|
arguments:
|
||||||
|
- name: organization_name
|
||||||
|
title: "Название организации"
|
||||||
|
default: "DEMO"
|
||||||
|
type: unicode_identifier
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- name: organization_id
|
||||||
|
title: "Идентификатор организации"
|
||||||
|
default: "1234"
|
||||||
|
type: ascii_sentence
|
||||||
|
|
||||||
|
- name: http_port
|
||||||
|
title: "HTTP порт"
|
||||||
|
default: "80"
|
||||||
|
type: int
|
||||||
|
|
||||||
|
- name: https_port
|
||||||
|
title: "HTTPS порт"
|
||||||
|
default: "443"
|
||||||
|
type: int
|
||||||
|
|
||||||
|
- id: medicine-change-env
|
||||||
|
title: Изменить настройки
|
||||||
|
icon: ⚙️
|
||||||
|
popupOnStart: execution-dialog-stdout-only
|
||||||
|
shell: /config/medicine-change-env.sh "{{ http_port }}" "{{ https_port }}"
|
||||||
|
timeout: 600
|
||||||
|
arguments:
|
||||||
|
- name: http_port
|
||||||
|
title: "HTTP порт"
|
||||||
|
default: "80"
|
||||||
|
type: int
|
||||||
|
|
||||||
|
- name: https_port
|
||||||
|
title: "HTTPS порт"
|
||||||
|
default: "443"
|
||||||
|
type: int
|
||||||
|
|
||||||
|
- id: mis-restart
|
||||||
|
title: Перезапустить
|
||||||
|
icon: 🔄
|
||||||
|
timeout: 60
|
||||||
|
shell: /config/medicine-restart.sh
|
||||||
|
popupOnStart: execution-dialog-stdout-only
|
||||||
|
|
||||||
|
- id: mis-update
|
||||||
|
title: Обновить
|
||||||
|
icon: ⬆️
|
||||||
|
popupOnStart: execution-dialog-stdout-only
|
||||||
|
timeout: 60
|
||||||
|
shell: /config/medicine-update.sh
|
||||||
|
|
||||||
|
- id: ping-sync
|
||||||
|
title: Ping sync.med-logic.ru
|
||||||
|
shell: ping sync.med-logic.ru -c 2
|
||||||
|
icon: ping
|
||||||
|
popupOnStart: execution-dialog-stdout-only
|
||||||
|
|
||||||
|
- id: ping-docker
|
||||||
|
title: Ping docker.med-logic.ru
|
||||||
|
shell: ping docker.med-logic.ru -c 2
|
||||||
|
icon: ping
|
||||||
|
popupOnStart: execution-dialog-stdout-only
|
||||||
|
|
||||||
|
- id: check-disk-space
|
||||||
|
title: Check disk space
|
||||||
|
icon: disk
|
||||||
|
shell: df -h /media
|
||||||
|
popupOnStart: execution-dialog-stdout-only
|
||||||
|
|
||||||
|
dashboards:
|
||||||
|
- title: Главная
|
||||||
|
contents:
|
||||||
|
- title: МИС
|
||||||
|
type: fieldset
|
||||||
|
contents:
|
||||||
|
- title: Установить
|
||||||
|
- title: Перезапустить
|
||||||
|
- title: Обновить
|
||||||
|
- title: Изменить настройки
|
||||||
|
|
||||||
|
- title: "Системное"
|
||||||
|
type: fieldset
|
||||||
|
contents:
|
||||||
|
- title: Ping sync.med-logic.ru
|
||||||
|
- title: Ping docker.med-logic.ru
|
||||||
|
- title: Check disk space
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
GLOBAL_ENV_FILE="/medicine-config/.env"
|
||||||
|
ENV_FILE="/medicine-config/medicine/.env"
|
||||||
|
|
||||||
|
HTTP_PORT="$1"
|
||||||
|
HTTPS_PORT="$2"
|
||||||
|
|
||||||
|
set_env_var () {
|
||||||
|
local key="$1"
|
||||||
|
local value="$2"
|
||||||
|
|
||||||
|
if grep -qE "^${key}=" "$ENV_FILE"; then
|
||||||
|
sed -i "s|^${key}=.*|${key}=${value}|" "$ENV_FILE"
|
||||||
|
else
|
||||||
|
echo "${key}=${value}" >> "$ENV_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
unset_env_var () {
|
||||||
|
local key="$1"
|
||||||
|
|
||||||
|
if grep -qE "^${key}=" "$ENV_FILE"; then
|
||||||
|
sed -i "/^${key}=/d" "$ENV_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "HTTP порт: $HTTP_PORT"
|
||||||
|
echo "HTTPS порт: $HTTPS_PORT"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
touch "$ENV_FILE"
|
||||||
|
touch "$GLOBAL_ENV_FILE"
|
||||||
|
|
||||||
|
if [ -n "$HTTP_PORT" ] && [ "$HTTP_PORT" != "80" ]; then
|
||||||
|
set_env_var "NGINX_HTTP_PORT" "$HTTP_PORT"
|
||||||
|
else
|
||||||
|
unset_env_var "NGINX_HTTP_PORT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$HTTPS_PORT" ] && [ "$HTTPS_PORT" != "443" ]; then
|
||||||
|
set_env_var "NGINX_HTTPS_PORT" "$HTTPS_PORT"
|
||||||
|
else
|
||||||
|
unset_env_var "NGINX_HTTPS_PORT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
(cd /medicine-config/medicine && docker compose stop && docker compose up -d)
|
||||||
|
|
||||||
|
echo "✅ Настройки изменены"
|
||||||
|
|
@ -0,0 +1,135 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
SECRET_KEY=$(head -c 32 /dev/urandom | base64)
|
||||||
|
NETWORK_NAME=medicine-network
|
||||||
|
GLOBAL_ENV_FILE="/medicine-config/.env"
|
||||||
|
ENV_FILE="/medicine-config/medicine/.env"
|
||||||
|
POSTGRES_CONTAINER=service-postgres
|
||||||
|
POSTGRES_USER=postgres
|
||||||
|
DB_NAME=medicine
|
||||||
|
|
||||||
|
ORGANIZATION_NAME="$1"
|
||||||
|
ORGANIZATION_ID="$2"
|
||||||
|
HTTP_PORT="$3"
|
||||||
|
HTTPS_PORT="$4"
|
||||||
|
|
||||||
|
set_global_env_var () {
|
||||||
|
local key="$1"
|
||||||
|
local value="$2"
|
||||||
|
|
||||||
|
if grep -qE "^${key}=" "$GLOBAL_ENV_FILE"; then
|
||||||
|
sed -i "s|^${key}=.*|${key}=${value}|" "$GLOBAL_ENV_FILE"
|
||||||
|
else
|
||||||
|
echo "${key}=${value}" >> "$GLOBAL_ENV_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_env_var () {
|
||||||
|
local key="$1"
|
||||||
|
local value="$2"
|
||||||
|
|
||||||
|
if grep -qE "^${key}=" "$ENV_FILE"; then
|
||||||
|
sed -i "s|^${key}=.*|${key}=${value}|" "$ENV_FILE"
|
||||||
|
else
|
||||||
|
echo "${key}=${value}" >> "$ENV_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
unset_env_var () {
|
||||||
|
local key="$1"
|
||||||
|
|
||||||
|
if grep -qE "^${key}=" "$ENV_FILE"; then
|
||||||
|
sed -i "/^${key}=/d" "$ENV_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -z "$ORGANIZATION_NAME" || -z "$ORGANIZATION_ID" ]]; then
|
||||||
|
echo "❌ Ошибка: оба параметра обязательны"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Название организации: $ORGANIZATION_NAME"
|
||||||
|
echo "Идентификатор организации: $ORGANIZATION_ID"
|
||||||
|
echo "HTTP порт: $HTTP_PORT"
|
||||||
|
echo "HTTPS порт: $HTTPS_PORT"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
if [ -z $(docker network ls --filter name=^${NETWORK_NAME}$ --format="{{ .Name }}") ] ; then
|
||||||
|
docker network create ${NETWORK_NAME} ;
|
||||||
|
echo "🌐 Сеть $NETWORK_NAME создана"
|
||||||
|
else
|
||||||
|
echo "🌐 Сеть $NETWORK_NAME уже существует"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "📁 Создаем файлы окружения"
|
||||||
|
touch "$ENV_FILE"
|
||||||
|
touch "$GLOBAL_ENV_FILE"
|
||||||
|
|
||||||
|
set_global_env_var "ORGANIZATION_ID" "$ORGANIZATION_ID"
|
||||||
|
set_global_env_var "ORGANIZATION_NAME" "$ORGANIZATION_NAME"
|
||||||
|
set_global_env_var "POSTGRES_USER" "$POSTGRES_USER"
|
||||||
|
set_global_env_var "POSTGRES_HOST" "$POSTGRES_CONTAINER"
|
||||||
|
set_global_env_var "REDIS_HOST" "service-redis"
|
||||||
|
|
||||||
|
set_env_var "SECRET_KEY" "$SECRET_KEY"
|
||||||
|
|
||||||
|
if [ -n "$HTTP_PORT" ] && [ "$HTTP_PORT" != "80" ]; then
|
||||||
|
set_env_var "NGINX_HTTP_PORT" "$HTTP_PORT"
|
||||||
|
else
|
||||||
|
unset_env_var "NGINX_HTTP_PORT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$HTTPS_PORT" ] && [ "$HTTPS_PORT" != "443" ]; then
|
||||||
|
set_env_var "NGINX_HTTPS_PORT" "$HTTPS_PORT"
|
||||||
|
else
|
||||||
|
unset_env_var "NGINX_HTTPS_PORT"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "📦 Запускаем контейнер postgres"
|
||||||
|
(cd /medicine-config/service-postgres && docker compose pull -q && docker compose up -d)
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "📦 Запускаем контейнер redis"
|
||||||
|
(cd /medicine-config/service-redis && docker compose pull -q && docker compose up -d)
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
if docker exec "$POSTGRES_CONTAINER" psql -U "$POSTGRES_USER" -tAc \
|
||||||
|
"SELECT 1 FROM pg_database WHERE datname='$DB_NAME'" | grep -q 1; then
|
||||||
|
echo "✅ База данных уже существует: $DB_NAME"
|
||||||
|
else
|
||||||
|
echo "➕ База данных не найдена, создаём: $DB_NAME"
|
||||||
|
docker exec "$POSTGRES_CONTAINER" createdb -U "$POSTGRES_USER" "$DB_NAME"
|
||||||
|
echo "✅ База данных создана: $DB_NAME"
|
||||||
|
fi
|
||||||
|
|
||||||
|
TABLES_COUNT=$(docker exec "$POSTGRES_CONTAINER" psql -U "$POSTGRES_USER" -d "$DB_NAME" -tAc \
|
||||||
|
"SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'public';")
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
if [ "$TABLES_COUNT" -gt 0 ]; then
|
||||||
|
echo "⚠️ Восстановление БД пропущено - в базе уже есть таблицы ($TABLES_COUNT)"
|
||||||
|
else
|
||||||
|
echo "📥 Восстанавливаем БД из бэкапа"
|
||||||
|
|
||||||
|
unzip -o /medicine-config/backups/medicine.sql.zip -d /tmp
|
||||||
|
docker cp /tmp/medicine.sql "$POSTGRES_CONTAINER:/tmp/medicine.sql"
|
||||||
|
docker exec -i "$POSTGRES_CONTAINER" psql -U "$POSTGRES_USER" -d "$DB_NAME" -q --set ON_ERROR_STOP=on -f /tmp/medicine.sql
|
||||||
|
|
||||||
|
echo "✅ Восстановление завершено"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Скачиваем образ"
|
||||||
|
docker pull docker.med-logic.ru/medicine:latest -q
|
||||||
|
docker tag docker.med-logic.ru/medicine:latest medicine:latest
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Запускаем систему"
|
||||||
|
(cd /medicine-config/medicine && docker compose up -d)
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🎉 МИС \"Медицина\" успешно установлена"
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
(cd /medicine-config/medicine && docker compose stop && docker compose up -d)
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "✅ МИС \"Медицина\" успешно перезапущена"
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
docker pull docker.med-logic.ru/medicine:latest
|
||||||
|
|
||||||
|
(cd /medicine-config/medicine &&
|
||||||
|
docker run --rm \
|
||||||
|
--env-file .env \
|
||||||
|
--env-file /medicine-config/.env \
|
||||||
|
--network medicine-network \
|
||||||
|
--name medicine-apply-migrations \
|
||||||
|
docker.med-logic.ru/medicine:latest python manage.py migrate --noinput
|
||||||
|
)
|
||||||
|
|
||||||
|
(cd /medicine-config/medicine &&
|
||||||
|
docker compose stop &&
|
||||||
|
docker compose up -d
|
||||||
|
)
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "✅ МИС \"Медицина\" успешно обновлена"
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
|
||||||
|
networks:
|
||||||
|
medicine-network:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
medicine-dashboard-config:
|
||||||
|
name: medicine-dashboard-config
|
||||||
|
|
||||||
|
services:
|
||||||
|
dashboard:
|
||||||
|
container_name: medicine-dashboard
|
||||||
|
image: medicine-dashboard:latest
|
||||||
|
restart: always
|
||||||
|
privileged: true
|
||||||
|
user: root
|
||||||
|
networks:
|
||||||
|
- medicine-network
|
||||||
|
volumes:
|
||||||
|
- ../:/medicine-config
|
||||||
|
- ./config:/config
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
ports:
|
||||||
|
- "800:1337"
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "5mb"
|
||||||
|
max-file: "10"
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
dockge:
|
|
||||||
image: louislam/dockge:1
|
|
||||||
container_name: dockge
|
|
||||||
restart: "always"
|
|
||||||
ports:
|
|
||||||
- 881:5001
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
volumes:
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
- dockge-data:/app/data
|
|
||||||
- /root/medicine-config:/root/medicine-config
|
|
||||||
environment:
|
|
||||||
- DOCKGE_STACKS_DIR=/root/medicine-config
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
dockge-data:
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
medicine-call:
|
|
||||||
restart: "always"
|
|
||||||
image: docker.med-logic.ru/medicine-call:latest
|
|
||||||
container_name: medicine-call
|
|
||||||
env_file: .env
|
|
||||||
ports:
|
|
||||||
- "878:80"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose exec medicine-call bash
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "readonly" | docker login docker.med-logic.ru --username readonly --password-stdin
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-call:latest
|
|
||||||
|
|
||||||
cd /root/medicine-config/medicine-stack
|
|
||||||
docker-compose exec postgres psql -c 'CREATE DATABASE medicine_call' --username=postgres
|
|
||||||
|
|
||||||
cat <<EOT >> /root/medicine-config/medicine-call/.env
|
|
||||||
EOT
|
|
||||||
|
|
||||||
cd /root/medicine-config/medicine-damask
|
|
||||||
docker-compose run --rm medicine-call python manage.py migrate
|
|
||||||
docker-compose run --rm medicine-call python manage.py post_install
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-call:latest
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
||||||
docker rmi $(docker images -f "dangling=true" -q)
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
medicine-damask:
|
|
||||||
restart: "always"
|
|
||||||
image: docker.med-logic.ru/medicine-damask:latest
|
|
||||||
container_name: medicine-damask
|
|
||||||
env_file: .env
|
|
||||||
ports:
|
|
||||||
- "877:80"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose exec medicine-damask bash
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "readonly" | docker login docker.med-logic.ru --username readonly --password-stdin
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-damask:latest
|
|
||||||
|
|
||||||
cd /root/medicine-config/medicine-stack
|
|
||||||
docker-compose exec postgres psql -c 'CREATE DATABASE medicine_damask' --username=postgres
|
|
||||||
|
|
||||||
cat <<EOT >> /root/medicine-config/medicine-damask/.env
|
|
||||||
EOT
|
|
||||||
|
|
||||||
cd /root/medicine-config/medicine-damask
|
|
||||||
docker-compose run --rm medicine-damask python manage.py migrate
|
|
||||||
docker-compose run --rm medicine-damask python manage.py post_install
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-damask:latest
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
||||||
docker rmi $(docker images -f "dangling=true" -q)
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
|
|
||||||
version: '3.4'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
medicine-import:
|
|
||||||
restart: "always"
|
|
||||||
container_name: "medicine-import"
|
|
||||||
image: docker.med-logic.ru/medicine-import:latest
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: postgres
|
|
||||||
POSTGRES_DB: medicine_import
|
|
||||||
REDIS_CELERY_DB: 12
|
|
||||||
security_opt:
|
|
||||||
- seccomp:unconfined
|
|
||||||
volumes:
|
|
||||||
- ./public:/app/public
|
|
||||||
ports:
|
|
||||||
- "875:80"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
#extra_hosts:
|
|
||||||
# - "host.docker.internal:host-gateway"
|
|
||||||
external_links:
|
|
||||||
- "postgres:postgres-host"
|
|
||||||
- "redis:redis-host"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external:
|
|
||||||
name: "medicine-network"
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "readonly" | docker login docker.med-logic.ru --username readonly --password-stdin
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-import:latest
|
|
||||||
|
|
||||||
cd /root/medicine-config/medicine-stack
|
|
||||||
docker-compose exec postgres psql -c 'CREATE DATABASE medicine_import' --username=postgres
|
|
||||||
|
|
||||||
cd /root/medicine-config/medicine-import
|
|
||||||
docker-compose run --rm medicine-import python manage.py post_install
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
medicine-lis-receiver:
|
|
||||||
restart: "always"
|
|
||||||
image: docker.med-logic.ru/medicine-lis-receiver:latest
|
|
||||||
container_name: medicine-lis-receiver
|
|
||||||
environment:
|
|
||||||
DATABASE_URL: postgres:password@medicine-stack-postgres/medicine
|
|
||||||
SUPERVISOR_HTTP_USERNAME: admin
|
|
||||||
SUPERVISOR_HTTP_PASSWORD: p@ssword
|
|
||||||
ports:
|
|
||||||
- "9501:800"
|
|
||||||
- "5100:800"
|
|
||||||
- "810:810"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
volumes:
|
|
||||||
- ./supervisor_confs:/supervisor_confs
|
|
||||||
- ./streams:/streams
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
medicine-lis:
|
|
||||||
restart: "always"
|
|
||||||
image: docker.med-logic.ru/medicine-lis:latest
|
|
||||||
container_name: medicine-lis
|
|
||||||
env_file: .env
|
|
||||||
ports:
|
|
||||||
- "876:80"
|
|
||||||
- "5500-5510:5500-5510"
|
|
||||||
security_opt:
|
|
||||||
- seccomp:unconfined
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
volumes:
|
|
||||||
- ./supervisor_confs:/supervisor_confs
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-lis:latest
|
|
||||||
|
|
||||||
cd /root/medicine-config/medicine-stack
|
|
||||||
docker-compose exec postgres psql -c 'CREATE DATABASE medicine_lis' --username=postgres
|
|
||||||
|
|
||||||
cat <<EOT >> /root/medicine-config/medicine-lis/.env
|
|
||||||
EOT
|
|
||||||
|
|
||||||
cd /root/medicine-config/medicine-lis
|
|
||||||
docker-compose run --rm medicine-lis python manage.py migrate
|
|
||||||
docker-compose run --rm medicine-lis python manage.py post_install
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
|
|
||||||
docker-compose logs --tail 100 --follow
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-lis:latest
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
||||||
docker rmi $(docker images -f "dangling=true" -q)
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
export LC_ALL=C
|
|
||||||
|
|
||||||
mkdir -p /root/medicine-backups/
|
|
||||||
cd /root/medicine-backups/
|
|
||||||
|
|
||||||
weekday_number=$(date +%u)
|
|
||||||
weekday=$(date +%A | tr '[:upper:]' '[:lower:]')
|
|
||||||
backup_filename="medicine_remd_${weekday_number}_${weekday}.sql"
|
|
||||||
archive_filename="medicine_remd_${weekday_number}_${weekday}.tar.gz"
|
|
||||||
docker exec -i medicine-stack-postgres pg_dump --no-owner -U postgres -F p medicine_remd > "${backup_filename}"
|
|
||||||
|
|
||||||
if test -f "${archive_filename}"; then
|
|
||||||
rm "${archive_filename}"
|
|
||||||
fi
|
|
||||||
tar -czf "${archive_filename}" "${backup_filename}"
|
|
||||||
rm "${backup_filename}"
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
medicine-remd:
|
|
||||||
restart: "always"
|
|
||||||
image: docker.med-logic.ru/medicine-remd:latest
|
|
||||||
container_name: medicine-remd
|
|
||||||
env_file: .env
|
|
||||||
environment:
|
|
||||||
UWSGI_PROCESSES: 2
|
|
||||||
UWSGI_THREADS: 2
|
|
||||||
SECRET_KEY: ${SECRET_KEY}
|
|
||||||
SENTRY_ENABLED: ${SENTRY_ENABLED}
|
|
||||||
SENTRY_SERVER_NAME: ${SENTRY_SERVER_NAME}
|
|
||||||
security_opt:
|
|
||||||
- seccomp:unconfined
|
|
||||||
ports:
|
|
||||||
- "870:80"
|
|
||||||
volumes:
|
|
||||||
- ./public:/app/public
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
extra_hosts:
|
|
||||||
- "sync.med-logic.ru:89.223.70.16"
|
|
||||||
- "sentry.med-logic.ru:89.223.70.16"
|
|
||||||
- "org.med-logic.ru:89.223.70.16"
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose logs --tail 100 --follow
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "readonly" | docker login docker.med-logic.ru --username readonly --password-stdin
|
|
||||||
docker pull docker.med-logic.ru/medicine-remd:latest
|
|
||||||
|
|
||||||
(cd /root/medicine-config/medicine-remd &&
|
|
||||||
docker-compose stop &&
|
|
||||||
docker-compose up -d
|
|
||||||
)
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
redis:
|
|
||||||
container_name: medicine-stack-redis
|
|
||||||
image: redis:5.0.6
|
|
||||||
restart: "always"
|
|
||||||
command: redis-server --maxmemory-policy allkeys-lru --maxclients 10000
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
postgres:
|
|
||||||
container_name: medicine-stack-postgres
|
|
||||||
image: postgres:12.2
|
|
||||||
shm_size: 1gb
|
|
||||||
command: postgres -c shared_buffers=512MB -c work_mem=8MB
|
|
||||||
restart: "always"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: "postgres"
|
|
||||||
POSTGRES_PASSWORD: "password"
|
|
||||||
volumes:
|
|
||||||
- ./volumes/postgres-data:/var/lib/postgresql/data
|
|
||||||
- ../volumes/files:/files
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
medicine-timetable:
|
|
||||||
image: docker.med-logic.ru/medicine-timetable
|
|
||||||
container_name: "medicine-timetable"
|
|
||||||
restart: "always"
|
|
||||||
ports:
|
|
||||||
- "882:80"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
export LC_ALL=C
|
|
||||||
|
|
||||||
mkdir -p /root/medicine-backups/
|
|
||||||
cd /root/medicine-backups/
|
|
||||||
|
|
||||||
weekday_number=$(date +%u)
|
|
||||||
weekday=$(date +%A | tr '[:upper:]' '[:lower:]')
|
|
||||||
backup_filename="medicine_${weekday_number}_${weekday}.sql"
|
|
||||||
archive_filename="medicine_${weekday_number}_${weekday}.tar.gz"
|
|
||||||
docker exec -i medicine-stack-postgres pg_dump --no-owner -U postgres -F p medicine > "${backup_filename}" \
|
|
||||||
--exclude-table-data=riisz_logging \
|
|
||||||
--exclude-table-data=reversion_*
|
|
||||||
|
|
||||||
if test -f "${archive_filename}"; then
|
|
||||||
rm "${archive_filename}"
|
|
||||||
fi
|
|
||||||
tar -czf "${archive_filename}" "${backup_filename}"
|
|
||||||
rm "${backup_filename}"
|
|
||||||
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
mkdir -p /root/medicine-backups/
|
|
||||||
cd /root/medicine-backups/
|
|
||||||
archive_filename="medicine_media.zip"
|
|
||||||
|
|
||||||
if test -f "${archive_filename}"; then
|
|
||||||
rm "${archive_filename}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
zip -r "${archive_filename}" /var/lib/docker/volumes/medicine_medicine-public-data/_data/media
|
|
||||||
|
|
@ -1,65 +1,45 @@
|
||||||
|
|
||||||
version: '3.4'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
app:
|
|
||||||
image: docker.med-logic.ru/medicine:latest
|
|
||||||
container_name: medicine-app
|
|
||||||
restart: "always"
|
|
||||||
env_file: .env
|
|
||||||
environment:
|
|
||||||
UWSGI_PROCESSES: ${UWSGI_PROCESSES:-2}
|
|
||||||
UWSGI_THREADS: ${UWSGI_THREADS:-4}
|
|
||||||
ports:
|
|
||||||
- "${NGINX_PORT:-80}:80"
|
|
||||||
- "${NGINX_HTTPS_PORT:-443}:443"
|
|
||||||
volumes:
|
|
||||||
- medicine-public-data:/app/public
|
|
||||||
- medicine-files:/app/public/media/files
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
extra_hosts:
|
|
||||||
- "sync.med-logic.ru:89.223.70.16"
|
|
||||||
- "sentry.med-logic.ru:89.223.70.16"
|
|
||||||
- "files.med-logic.ru:89.223.70.16"
|
|
||||||
- "git.med-logic.ru:89.223.70.16"
|
|
||||||
- "org.med-logic.ru:89.223.70.16"
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
tasks:
|
|
||||||
image: docker.med-logic.ru/medicine:latest
|
|
||||||
container_name: medicine-tasks
|
|
||||||
restart: "always"
|
|
||||||
command: /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord-tasks.conf
|
|
||||||
env_file: .env
|
|
||||||
environment:
|
|
||||||
CELERY_WORKER_CONCURRENCY: ${CELERY_WORKER_CONCURRENCY:-2}
|
|
||||||
volumes:
|
|
||||||
- medicine-public-data:/app/public
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
extra_hosts:
|
|
||||||
- "sync.med-logic.ru:89.223.70.16"
|
|
||||||
- "sentry.med-logic.ru:89.223.70.16"
|
|
||||||
- "files.med-logic.ru:89.223.70.16"
|
|
||||||
- "git.med-logic.ru:89.223.70.16"
|
|
||||||
- "org.med-logic.ru:89.223.70.16"
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
medicine-public-data:
|
medicine-public-data:
|
||||||
medicine-files:
|
name: medicine-public-data
|
||||||
name: medicine-files
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
medicine-network:
|
medicine-network:
|
||||||
external: true
|
external: true
|
||||||
|
|
||||||
|
x-common: &common-params
|
||||||
|
image: medicine:latest
|
||||||
|
restart: always
|
||||||
|
env_file:
|
||||||
|
- ../.env
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- medicine-public-data:/app/public
|
||||||
|
networks:
|
||||||
|
- medicine-network
|
||||||
|
extra_hosts:
|
||||||
|
- "sync.med-logic.ru:89.223.70.16"
|
||||||
|
- "sentry.med-logic.ru:89.223.70.16"
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "5mb"
|
||||||
|
max-file: "10"
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
<<: *common-params
|
||||||
|
container_name: medicine-app
|
||||||
|
environment:
|
||||||
|
UWSGI_PROCESSES: ${UWSGI_PROCESSES:-2}
|
||||||
|
UWSGI_THREADS: ${UWSGI_THREADS:-4}
|
||||||
|
ports:
|
||||||
|
- "${NGINX_HTTP_PORT:-80}:80"
|
||||||
|
- "${NGINX_HTTPS_PORT:-443}:443"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
<<: *common-params
|
||||||
|
container_name: medicine-tasks
|
||||||
|
command: /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord-tasks.conf
|
||||||
|
environment:
|
||||||
|
CELERY_WORKER_CONCURRENCY: ${CELERY_WORKER_CONCURRENCY:-2}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose exec app bash
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose logs --tail 100 --follow
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
docker stop medicine-app medicine-tasks
|
|
||||||
docker exec medicine-stack-postgres psql -c 'DROP DATABASE medicine' --username=postgres
|
|
||||||
docker exec medicine-stack-postgres psql -c 'CREATE DATABASE medicine' --username=postgres
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
(cd /root/medicine-config/medicine &&
|
|
||||||
docker-compose exec python manage.py reset_password
|
|
||||||
)
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine:latest
|
|
||||||
|
|
||||||
(cd /root/medicine-config/medicine &&
|
|
||||||
docker run --rm \
|
|
||||||
--env-file .env \
|
|
||||||
--network medicine-network \
|
|
||||||
--name medicine-apply-migrations \
|
|
||||||
docker.med-logic.ru/medicine:latest python manage.py migrate --noinput
|
|
||||||
)
|
|
||||||
|
|
||||||
(cd /root/medicine-config/medicine &&
|
|
||||||
docker-compose stop &&
|
|
||||||
docker-compose up -d
|
|
||||||
)
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
service-messaging:
|
|
||||||
restart: "always"
|
|
||||||
image: docker.med-logic.ru/medicine-ntf:latest
|
|
||||||
container_name: service-messaging
|
|
||||||
env_file: .env
|
|
||||||
environment:
|
|
||||||
UWSGI_PROCESSES: 2
|
|
||||||
UWSGI_THREADS: 2
|
|
||||||
ports:
|
|
||||||
- "872:80"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose exec service-messaging bash
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "readonly" | docker login docker.med-logic.ru --username readonly --password-stdin
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-ntf:latest
|
|
||||||
|
|
||||||
read -r -p "Create database? [y/N] " response
|
|
||||||
if [[ $prompt =~ [yY](es)* ]]
|
|
||||||
then
|
|
||||||
cd /root/medicine-config/medicine-stack
|
|
||||||
docker-compose exec postgres psql -c 'CREATE DATABASE service_messaging' --username=postgres
|
|
||||||
fi
|
|
||||||
|
|
||||||
read -p "Enter organization name: " ORGANIZATION_NAME
|
|
||||||
|
|
||||||
SECRET_KEY=$(openssl rand -base64 32)
|
|
||||||
|
|
||||||
cat <<EOT >> /root/medicine-config/service-messaging/.env
|
|
||||||
|
|
||||||
SECRET_KEY=$SECRET_KEY
|
|
||||||
|
|
||||||
SENTRY_ENABLED='True'
|
|
||||||
|
|
||||||
SENTRY_SERVER_NAME=$ORGANIZATION_NAME
|
|
||||||
|
|
||||||
EOT
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose logs --tail 100 --follow
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/medicine-ntf:latest
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
docker-compose run --rm service-messaging python manage.py migrate
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
networks:
|
||||||
|
medicine-network:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres-data:
|
||||||
|
name: medicine-postgres-data
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:15
|
||||||
|
container_name: service-postgres
|
||||||
|
restart: always
|
||||||
|
shm_size: 1gb
|
||||||
|
command: >
|
||||||
|
postgres
|
||||||
|
-c shared_buffers=512MB
|
||||||
|
-c work_mem=4MB
|
||||||
|
-c max_connections=200
|
||||||
|
networks:
|
||||||
|
- medicine-network
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: ${MEDICINE_POSTGRES_USER:-postgres}
|
||||||
|
POSTGRES_PASSWORD: ${MEDICINE_POSTGRES_PASSWORD:-password}
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
volumes:
|
||||||
|
- postgres-data:/var/lib/postgresql/data
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "5m"
|
||||||
|
max-file: "5"
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
networks:
|
||||||
|
medicine-network:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
services:
|
||||||
|
redis:
|
||||||
|
container_name: service-redis
|
||||||
|
image: redis:5.0.6
|
||||||
|
restart: "always"
|
||||||
|
command: redis-server --loglevel warning --maxmemory-policy allkeys-lru --maxclients 10000
|
||||||
|
networks:
|
||||||
|
- medicine-network
|
||||||
|
logging:
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "5m"
|
||||||
|
max-file: "5"
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
|
|
||||||
lsb_release -d -s
|
|
||||||
df -h /dev/sda1 | sed 1d | awk '{print $4}'
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
tfoms-patient:
|
|
||||||
container_name: tfoms-patient
|
|
||||||
restart: "always"
|
|
||||||
image: docker.med-logic.ru/tfoms-patient:latest
|
|
||||||
environment:
|
|
||||||
- SENTRY_SITE=${SENTRY_SITE}
|
|
||||||
- SQLALCHEMY_DATABASE_URI=postgresql://postgres:password@medicine-stack-postgres/tfoms_patient
|
|
||||||
ports:
|
|
||||||
- "880:80"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "readonly" | docker login docker.med-logic.ru --username readonly --password-stdin
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/tfoms-patient:latest
|
|
||||||
|
|
||||||
read -p "Enter organization name: " ORGANIZATION_NAME
|
|
||||||
|
|
||||||
cat <<EOT >> /root/medicine-config/tfoms-patient/.env
|
|
||||||
SENTRY_SITE=$ORGANIZATION_NAME
|
|
||||||
EOT
|
|
||||||
|
|
||||||
cd /root/medicine-config/tfoms-patient && docker-compose up -d
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker pull docker.med-logic.ru/tfoms-patient:latest
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
|
|
||||||
FROM python:3.8
|
|
||||||
|
|
||||||
RUN pip install flower==0.9.7
|
|
||||||
RUN pip install redis
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
version: '3.4'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
pgadmin:
|
|
||||||
image: dpage/pgadmin4:4.23
|
|
||||||
container_name: "thirdparty-pgadmin"
|
|
||||||
restart: "always"
|
|
||||||
external_links:
|
|
||||||
- "postgres:postgres-host"
|
|
||||||
environment:
|
|
||||||
PGADMIN_DEFAULT_EMAIL: "admin"
|
|
||||||
PGADMIN_DEFAULT_PASSWORD: "pgadmin-pass"
|
|
||||||
ports:
|
|
||||||
- "851:80"
|
|
||||||
volumes:
|
|
||||||
- pgadmin-data:/var/lib/pgadmin
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
filebrowser:
|
|
||||||
image: filebrowser/filebrowser:v2.31.2
|
|
||||||
container_name: "thirdparty-filebrowser"
|
|
||||||
restart: "always"
|
|
||||||
ports:
|
|
||||||
- "856:80"
|
|
||||||
volumes:
|
|
||||||
- filebrowser-data:/etc
|
|
||||||
- ../volumes/files:/srv/volumes
|
|
||||||
- medicine-files:/srv/medicine-files
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
flower:
|
|
||||||
restart: "always"
|
|
||||||
container_name: "thirdparty-flower"
|
|
||||||
command: >
|
|
||||||
flower
|
|
||||||
--port=852
|
|
||||||
--broker=redis://redis-host:6379/2
|
|
||||||
--broker_api=redis://redis-host:6379/2
|
|
||||||
--basic_auth=admin:flower-pass
|
|
||||||
--max_workers=2
|
|
||||||
--max_tasks=500
|
|
||||||
build:
|
|
||||||
context: ./
|
|
||||||
dockerfile: ./Dockerfile-flower
|
|
||||||
external_links:
|
|
||||||
- "redis:redis-host"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
ports:
|
|
||||||
- "852:852"
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
pgadmin-data:
|
|
||||||
filebrowser-data:
|
|
||||||
medicine-files:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external:
|
|
||||||
name: "medicine-network"
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
docker-compose stop
|
|
||||||
docker-compose pull
|
|
||||||
docker-compose build
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
||||||
chmod +x update.sh
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
|
|
||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
thumbgen:
|
|
||||||
restart: "always"
|
|
||||||
image: "docker.med-logic.ru/thumbgen:latest"
|
|
||||||
container_name: "service-thumbgen"
|
|
||||||
ports:
|
|
||||||
- "820:80"
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "200k"
|
|
||||||
max-file: "10"
|
|
||||||
networks:
|
|
||||||
- medicine-network
|
|
||||||
|
|
||||||
networks:
|
|
||||||
medicine-network:
|
|
||||||
external: true
|
|
||||||
Loading…
Reference in New Issue