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.
|
||||
|
||||
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:
|
||||
|
||||
```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}"
|
||||
INSTALL_DIR="${INSTALL_DIR:-/opt/seconectai-web}"
|
||||
APP_DOMAIN="${APP_DOMAIN:-}"
|
||||
APP_URL="${APP_URL:-}"
|
||||
LETSENCRYPT_EMAIL="${LETSENCRYPT_EMAIL:-}"
|
||||
ADMIN_EMAIL="${ADMIN_EMAIL:-}"
|
||||
ADMIN_INITIAL_PASSWORD="${ADMIN_INITIAL_PASSWORD:-}"
|
||||
@@ -32,11 +33,28 @@ gen_secret() {
|
||||
fi
|
||||
}
|
||||
|
||||
need APP_DOMAIN "$APP_DOMAIN"
|
||||
need LETSENCRYPT_EMAIL "$LETSENCRYPT_EMAIL"
|
||||
need ADMIN_EMAIL "$ADMIN_EMAIL"
|
||||
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
|
||||
POSTGRES_PASSWORD="$(gen_secret)"
|
||||
fi
|
||||
@@ -89,7 +107,7 @@ POSTGRES_USER=briefing
|
||||
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
|
||||
DATABASE_URL=postgresql://briefing:$POSTGRES_PASSWORD@db:5432/briefing?schema=public
|
||||
AUTH_SECRET=$AUTH_SECRET
|
||||
APP_URL=https://$APP_DOMAIN
|
||||
APP_URL=$APP_URL
|
||||
APP_DOMAIN=$APP_DOMAIN
|
||||
LETSENCRYPT_EMAIL=$LETSENCRYPT_EMAIL
|
||||
CPF_ENC_KEY=$CPF_ENC_KEY
|
||||
@@ -114,16 +132,21 @@ EOF
|
||||
chmod 600 .env
|
||||
|
||||
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"
|
||||
$COMPOSE -f docker-compose.prod.yml run --rm release
|
||||
$COMPOSE -f "$COMPOSE_FILE" run --rm release
|
||||
|
||||
if [ "$COMPOSE_FILE" = "docker-compose.prod.yml" ]; then
|
||||
echo "Subindo app e proxy HTTPS"
|
||||
$COMPOSE -f docker-compose.prod.yml up -d --build app caddy
|
||||
$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 "Instalacao concluida."
|
||||
echo "Acesse: https://$APP_DOMAIN"
|
||||
echo "Acesse: $APP_URL"
|
||||
echo "Admin: $ADMIN_EMAIL"
|
||||
echo "O Postgres nao foi exposto publicamente."
|
||||
|
||||
Reference in New Issue
Block a user