dev #2
@@ -64,8 +64,8 @@ jobs:
|
||||
docker compose down || true
|
||||
docker image prune -f
|
||||
docker network inspect traefik-public >/dev/null 2>&1 || docker network create traefik-public
|
||||
export DOMAIN=dev.merchbay.app
|
||||
export APP_URL=https://dev.merchbay.app
|
||||
export DOMAIN=dev-admin.merchbay.app
|
||||
export APP_URL=https://dev-admin.merchbay.app
|
||||
docker compose up -d
|
||||
sleep 10
|
||||
docker compose exec -T app php artisan migrate --force
|
||||
@@ -74,7 +74,7 @@ jobs:
|
||||
docker compose exec -T app php artisan view:cache
|
||||
rm -f /tmp/merchbay_admin_dev.tar.gz /tmp/docker-compose.yml
|
||||
echo 'Development deployment completed successfully!'
|
||||
echo 'Application available at: https://dev.merchbay.app'
|
||||
echo 'Application available at: https://dev-admin.merchbay.app'
|
||||
"
|
||||
env:
|
||||
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
|
||||
@@ -85,4 +85,4 @@ jobs:
|
||||
shell: sh
|
||||
run: |
|
||||
sleep 10
|
||||
curl -f https://dev.merchbay.app || exit 1
|
||||
curl -f https://dev-admin.merchbay.app || exit 1
|
||||
|
||||
@@ -93,13 +93,13 @@ mkdir -p /var/www/merchbay_admin_dev
|
||||
cat > /var/www/merchbay_admin_dev/.env << 'EOF'
|
||||
APP_ENV=staging
|
||||
APP_DEBUG=false
|
||||
APP_URL=https://dev.merchbay.app
|
||||
APP_URL=https://dev-admin.merchbay.app
|
||||
DB_HOST=localhost
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=merchbay_dev
|
||||
DB_USERNAME=merchbay_user
|
||||
DB_PASSWORD=your_dev_password
|
||||
DOMAIN=dev.merchbay.app
|
||||
DOMAIN=dev-admin.merchbay.app
|
||||
EOF
|
||||
|
||||
chmod 600 /var/www/merchbay_admin_dev/.env
|
||||
|
||||
@@ -11,7 +11,7 @@ All deployments use the external network: `traefik-public`
|
||||
docker network inspect traefik-public >/dev/null 2>&1 || docker network create traefik-public
|
||||
```
|
||||
|
||||
## Development (dev.merchbay.app) - Automatic SSL
|
||||
## Development (dev-admin.merchbay.app) - Automatic SSL
|
||||
|
||||
Development uses Let's Encrypt for automatic SSL certificate generation.
|
||||
|
||||
@@ -133,13 +133,13 @@ docker compose logs traefik | grep -i cert
|
||||
|
||||
File: `docker-compose.portainer.dev.yml`
|
||||
|
||||
- Domain: `dev.merchbay.app`
|
||||
- Domain: `dev-admin.merchbay.app`
|
||||
- SSL: Let's Encrypt (automatic)
|
||||
- Certificate Resolver: `letsencrypt`
|
||||
|
||||
```yaml
|
||||
labels:
|
||||
- "traefik.http.routers.merchbay-admin-dev.rule=Host(`dev.merchbay.app`)"
|
||||
- "traefik.http.routers.merchbay-admin-dev.rule=Host(`dev-admin.merchbay.app`)"
|
||||
- "traefik.http.routers.merchbay-admin-dev.tls.certresolver=letsencrypt"
|
||||
```
|
||||
|
||||
@@ -199,7 +199,7 @@ DEPLOY_PORT=22
|
||||
|
||||
```bash
|
||||
# Check certificate issuer (should be Let's Encrypt)
|
||||
echo | openssl s_client -servername dev.merchbay.app -connect dev.merchbay.app:443 2>/dev/null | openssl x509 -noout -issuer
|
||||
echo | openssl s_client -servername dev-admin.merchbay.app -connect dev-admin.merchbay.app:443 2>/dev/null | openssl x509 -noout -issuer
|
||||
# Should show: issuer=C = US, O = Let's Encrypt, CN = R3
|
||||
```
|
||||
|
||||
@@ -216,7 +216,7 @@ echo | openssl s_client -servername merchbay.app -connect merchbay.app:443 2>/de
|
||||
|
||||
### Verify in Browser
|
||||
|
||||
1. Visit https://dev.merchbay.app
|
||||
1. Visit https://dev-admin.merchbay.app
|
||||
- Certificate should be issued by "Let's Encrypt Authority X3"
|
||||
|
||||
2. Visit https://merchbay.com
|
||||
@@ -235,7 +235,7 @@ ls -l /path/to/letsencrypt/acme.json
|
||||
# Should be: -rw------- (600)
|
||||
|
||||
# Check DNS
|
||||
dig dev.merchbay.app +short
|
||||
dig dev-admin.merchbay.app +short
|
||||
# Should return your server IP
|
||||
```
|
||||
|
||||
@@ -285,7 +285,7 @@ Before certificate expiration:
|
||||
|
||||
```
|
||||
Type: A
|
||||
Name: dev.merchbay.app
|
||||
Name: dev-admin.merchbay.app
|
||||
Value: YOUR_SERVER_IP
|
||||
TTL: 3600
|
||||
```
|
||||
|
||||
@@ -12,7 +12,7 @@ services:
|
||||
environment:
|
||||
- APP_ENV=staging
|
||||
- APP_DEBUG=false
|
||||
- APP_URL=https://dev.merchbay.app
|
||||
- APP_URL=https://dev-admin.merchbay.app
|
||||
- DB_CONNECTION=mysql
|
||||
- DB_HOST=your-mysql-host
|
||||
- DB_PORT=3306
|
||||
@@ -24,13 +24,13 @@ services:
|
||||
- app_uploads_dev:/var/www/html/public/uploads
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.merchbay-admin-dev.rule=Host(`dev.merchbay.app`)"
|
||||
- "traefik.http.routers.merchbay-admin-dev.rule=Host(`dev-admin.merchbay.app`)"
|
||||
- "traefik.http.routers.merchbay-admin-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.merchbay-admin-dev.tls=true"
|
||||
- "traefik.http.routers.merchbay-admin-dev.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.merchbay-admin-dev.loadbalancer.server.port=80"
|
||||
# HTTP to HTTPS redirect
|
||||
- "traefik.http.routers.merchbay-admin-dev-http.rule=Host(`dev.merchbay.app`)"
|
||||
- "traefik.http.routers.merchbay-admin-dev-http.rule=Host(`dev-admin.merchbay.app`)"
|
||||
- "traefik.http.routers.merchbay-admin-dev-http.entrypoints=web"
|
||||
- "traefik.http.routers.merchbay-admin-dev-http.middlewares=https-redirect"
|
||||
- "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
|
||||
|
||||
@@ -59,8 +59,8 @@ case $env_choice in
|
||||
2)
|
||||
ENV_TYPE="development"
|
||||
DEPLOY_DIR="/var/www/merchbay_admin_dev"
|
||||
DEFAULT_DOMAIN="dev.merchbay.app"
|
||||
DEFAULT_APP_URL="https://dev.merchbay.app"
|
||||
DEFAULT_DOMAIN="dev-admin.merchbay.app"
|
||||
DEFAULT_APP_URL="https://dev-admin.merchbay.app"
|
||||
DEFAULT_APP_ENV="staging"
|
||||
DEFAULT_DB_NAME="merchbay_dev"
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user