Add HTTP install mode without domain
This commit is contained in:
@@ -135,6 +135,18 @@ SMTP_FROM=contato@dominio.com.br
|
|||||||
|
|
||||||
Evite colocar senha em parâmetro de URL. URL pode ficar gravada em histórico, logs e proxy. Passe segredo por variável de ambiente no comando ou edite o `.env` no servidor.
|
Evite colocar senha em parâmetro de URL. URL pode ficar gravada em histórico, logs e proxy. Passe segredo por variável de ambiente no comando ou edite o `.env` no servidor.
|
||||||
|
|
||||||
|
Sem domínio, para testar por IP em HTTP na porta `3000`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
curl -fsSL https://gitea.seconectai.com.br/tiago/SeConectai_Web/raw/branch/main/scripts/install-server.sh \
|
||||||
|
| SERVER_IP=45.13.59.110 \
|
||||||
|
ADMIN_EMAIL=tiago27.dossantos@gmail.com \
|
||||||
|
ADMIN_INITIAL_PASSWORD='troque-esta-senha' \
|
||||||
|
sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Depois acesse `http://45.13.59.110:3000`.
|
||||||
|
|
||||||
Para atualizar:
|
Para atualizar:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
services:
|
||||||
|
release:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
target: build
|
||||||
|
command: sh scripts/release.sh
|
||||||
|
restart: "no"
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
volumes:
|
||||||
|
- uploads:/app/storage/uploads
|
||||||
|
networks:
|
||||||
|
- briefing
|
||||||
|
|
||||||
|
app:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
target: runner
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
depends_on:
|
||||||
|
release:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
volumes:
|
||||||
|
- uploads:/app/storage/uploads
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "node -e \"fetch('http://localhost:3000/api/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\""]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
start_period: 30s
|
||||||
|
networks:
|
||||||
|
- briefing
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: postgres:16
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: ${POSTGRES_DB:-briefing}
|
||||||
|
POSTGRES_USER: ${POSTGRES_USER:-briefing}
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-briefing} -d ${POSTGRES_DB:-briefing}"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
volumes:
|
||||||
|
- pgdata:/var/lib/postgresql/data
|
||||||
|
networks:
|
||||||
|
- briefing
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pgdata:
|
||||||
|
uploads:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
briefing:
|
||||||
|
driver: bridge
|
||||||
@@ -4,6 +4,7 @@ set -eu
|
|||||||
REPO_URL="${REPO_URL:-https://gitea.seconectai.com.br/tiago/SeConectai_Web.git}"
|
REPO_URL="${REPO_URL:-https://gitea.seconectai.com.br/tiago/SeConectai_Web.git}"
|
||||||
INSTALL_DIR="${INSTALL_DIR:-/opt/seconectai-web}"
|
INSTALL_DIR="${INSTALL_DIR:-/opt/seconectai-web}"
|
||||||
APP_DOMAIN="${APP_DOMAIN:-}"
|
APP_DOMAIN="${APP_DOMAIN:-}"
|
||||||
|
APP_URL="${APP_URL:-}"
|
||||||
LETSENCRYPT_EMAIL="${LETSENCRYPT_EMAIL:-}"
|
LETSENCRYPT_EMAIL="${LETSENCRYPT_EMAIL:-}"
|
||||||
ADMIN_EMAIL="${ADMIN_EMAIL:-}"
|
ADMIN_EMAIL="${ADMIN_EMAIL:-}"
|
||||||
ADMIN_INITIAL_PASSWORD="${ADMIN_INITIAL_PASSWORD:-}"
|
ADMIN_INITIAL_PASSWORD="${ADMIN_INITIAL_PASSWORD:-}"
|
||||||
@@ -32,11 +33,28 @@ gen_secret() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
need APP_DOMAIN "$APP_DOMAIN"
|
|
||||||
need LETSENCRYPT_EMAIL "$LETSENCRYPT_EMAIL"
|
|
||||||
need ADMIN_EMAIL "$ADMIN_EMAIL"
|
need ADMIN_EMAIL "$ADMIN_EMAIL"
|
||||||
need ADMIN_INITIAL_PASSWORD "$ADMIN_INITIAL_PASSWORD"
|
need ADMIN_INITIAL_PASSWORD "$ADMIN_INITIAL_PASSWORD"
|
||||||
|
|
||||||
|
if [ -n "$APP_DOMAIN" ]; then
|
||||||
|
APP_URL="${APP_URL:-https://$APP_DOMAIN}"
|
||||||
|
COMPOSE_FILE="docker-compose.prod.yml"
|
||||||
|
else
|
||||||
|
SERVER_IP="${SERVER_IP:-}"
|
||||||
|
|
||||||
|
if [ -z "$APP_URL" ]; then
|
||||||
|
if [ -n "$SERVER_IP" ]; then
|
||||||
|
APP_URL="http://$SERVER_IP:3000"
|
||||||
|
else
|
||||||
|
APP_URL="http://localhost:3000"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
COMPOSE_FILE="docker-compose.http.yml"
|
||||||
|
APP_DOMAIN="${APP_DOMAIN:-localhost}"
|
||||||
|
LETSENCRYPT_EMAIL="${LETSENCRYPT_EMAIL:-admin@example.com}"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$POSTGRES_PASSWORD" ]; then
|
if [ -z "$POSTGRES_PASSWORD" ]; then
|
||||||
POSTGRES_PASSWORD="$(gen_secret)"
|
POSTGRES_PASSWORD="$(gen_secret)"
|
||||||
fi
|
fi
|
||||||
@@ -89,7 +107,7 @@ POSTGRES_USER=briefing
|
|||||||
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
|
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
|
||||||
DATABASE_URL=postgresql://briefing:$POSTGRES_PASSWORD@db:5432/briefing?schema=public
|
DATABASE_URL=postgresql://briefing:$POSTGRES_PASSWORD@db:5432/briefing?schema=public
|
||||||
AUTH_SECRET=$AUTH_SECRET
|
AUTH_SECRET=$AUTH_SECRET
|
||||||
APP_URL=https://$APP_DOMAIN
|
APP_URL=$APP_URL
|
||||||
APP_DOMAIN=$APP_DOMAIN
|
APP_DOMAIN=$APP_DOMAIN
|
||||||
LETSENCRYPT_EMAIL=$LETSENCRYPT_EMAIL
|
LETSENCRYPT_EMAIL=$LETSENCRYPT_EMAIL
|
||||||
CPF_ENC_KEY=$CPF_ENC_KEY
|
CPF_ENC_KEY=$CPF_ENC_KEY
|
||||||
@@ -114,16 +132,21 @@ EOF
|
|||||||
chmod 600 .env
|
chmod 600 .env
|
||||||
|
|
||||||
echo "Construindo e subindo banco"
|
echo "Construindo e subindo banco"
|
||||||
$COMPOSE -f docker-compose.prod.yml up -d db
|
$COMPOSE -f "$COMPOSE_FILE" up -d db
|
||||||
|
|
||||||
echo "Rodando migrations e seed"
|
echo "Rodando migrations e seed"
|
||||||
$COMPOSE -f docker-compose.prod.yml run --rm release
|
$COMPOSE -f "$COMPOSE_FILE" run --rm release
|
||||||
|
|
||||||
echo "Subindo app e proxy HTTPS"
|
if [ "$COMPOSE_FILE" = "docker-compose.prod.yml" ]; then
|
||||||
$COMPOSE -f docker-compose.prod.yml up -d --build app caddy
|
echo "Subindo app e proxy HTTPS"
|
||||||
|
$COMPOSE -f "$COMPOSE_FILE" up -d --build app caddy
|
||||||
|
else
|
||||||
|
echo "Subindo app HTTP na porta 3000"
|
||||||
|
$COMPOSE -f "$COMPOSE_FILE" up -d --build app
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Instalacao concluida."
|
echo "Instalacao concluida."
|
||||||
echo "Acesse: https://$APP_DOMAIN"
|
echo "Acesse: $APP_URL"
|
||||||
echo "Admin: $ADMIN_EMAIL"
|
echo "Admin: $ADMIN_EMAIL"
|
||||||
echo "O Postgres nao foi exposto publicamente."
|
echo "O Postgres nao foi exposto publicamente."
|
||||||
|
|||||||
Reference in New Issue
Block a user