Integrate FamiliarOS website into product repo under website/
- Add FamiliarOS website subtree under website/ - Move deploy workflow to root .github/workflows/deploy-website.yml - Update deploy script and runbook paths to /home/dev/src/FamiliarOS/website - Add website/docs exception to root .gitignore - Remaining: update familiaros-auth-server.service WorkingDirectory/EnvironmentFile and restart
This commit is contained in:
parent
65ac83849e
commit
1e12a9a54b
4 changed files with 47 additions and 81 deletions
44
.github/workflows/deploy-website.yml
vendored
Normal file
44
.github/workflows/deploy-website.yml
vendored
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
name: Deploy FamiliarOS Website
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Deploy on VPS
|
||||
uses: appleboy/ssh-action@v1.0.3
|
||||
with:
|
||||
host: ${{ secrets.VPS_HOST }}
|
||||
username: ${{ secrets.VPS_USER }}
|
||||
key: ${{ secrets.VPS_SSH_KEY }}
|
||||
script: |
|
||||
set -euo pipefail
|
||||
cd /home/dev/src/FamiliarOS
|
||||
|
||||
# Ensure we are on the latest main branch
|
||||
git fetch origin
|
||||
git checkout main || git checkout -b main origin/main
|
||||
git reset --hard origin/main
|
||||
|
||||
cd website
|
||||
|
||||
# Production build env
|
||||
export VITE_SUPERTOKENS_API_DOMAIN="${{ vars.VITE_SUPERTOKENS_API_DOMAIN || '' }}"
|
||||
export VITE_SUPERTOKENS_WEBSITE_DOMAIN="${{ vars.VITE_SUPERTOKENS_WEBSITE_DOMAIN || '' }}"
|
||||
export VITE_SUPERTOKENS_API_BASE_PATH="${{ vars.VITE_SUPERTOKENS_API_BASE_PATH || '/auth' }}"
|
||||
export VITE_SUPERTOKENS_WEBSITE_BASE_PATH="${{ vars.VITE_SUPERTOKENS_WEBSITE_BASE_PATH || '/auth' }}"
|
||||
export VITE_AUTH_API_BASE_URL="${{ vars.VITE_AUTH_API_BASE_URL || '' }}"
|
||||
export VITE_GITHUB_OAUTH_ENABLED="${{ vars.VITE_GITHUB_OAUTH_ENABLED || 'false' }}"
|
||||
export VITE_AUTH_API_TIMEOUT_MS="${{ vars.VITE_AUTH_API_TIMEOUT_MS || '8000' }}"
|
||||
export VITE_AUTH_HEALTH_TIMEOUT_MS="${{ vars.VITE_AUTH_HEALTH_TIMEOUT_MS || '6000' }}"
|
||||
|
||||
npm ci
|
||||
npm run build
|
||||
|
||||
# Deploy via the existing VPS deploy script (requires passwordless sudo or manual password entry)
|
||||
sudo /home/dev/familiaros-deploy/deploy-website.sh
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -11,6 +11,7 @@ apps/desktop/dist-electron
|
|||
local/
|
||||
.slim/deepwork/
|
||||
docs
|
||||
!website/docs
|
||||
*.diff
|
||||
MERGE_NOTES.md
|
||||
NEW_FILES.txt
|
||||
|
|
|
|||
79
website/.github/workflows/deploy.yml
vendored
79
website/.github/workflows/deploy.yml
vendored
|
|
@ -1,79 +0,0 @@
|
|||
name: Deploy FamiliarOS Website
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-and-deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Build production bundle
|
||||
env:
|
||||
VITE_SUPERTOKENS_API_DOMAIN: ${{ vars.VITE_SUPERTOKENS_API_DOMAIN || '' }}
|
||||
VITE_SUPERTOKENS_WEBSITE_DOMAIN: ${{ vars.VITE_SUPERTOKENS_WEBSITE_DOMAIN || '' }}
|
||||
VITE_SUPERTOKENS_API_BASE_PATH: ${{ vars.VITE_SUPERTOKENS_API_BASE_PATH || '/auth' }}
|
||||
VITE_SUPERTOKENS_WEBSITE_BASE_PATH: ${{ vars.VITE_SUPERTOKENS_WEBSITE_BASE_PATH || '/auth' }}
|
||||
VITE_AUTH_API_BASE_URL: ${{ vars.VITE_AUTH_API_BASE_URL || '' }}
|
||||
VITE_GITHUB_OAUTH_ENABLED: ${{ vars.VITE_GITHUB_OAUTH_ENABLED || 'false' }}
|
||||
VITE_AUTH_API_TIMEOUT_MS: ${{ vars.VITE_AUTH_API_TIMEOUT_MS || '8000' }}
|
||||
VITE_AUTH_HEALTH_TIMEOUT_MS: ${{ vars.VITE_AUTH_HEALTH_TIMEOUT_MS || '6000' }}
|
||||
run: npm run build
|
||||
|
||||
- name: Deploy static files to VPS
|
||||
uses: appleboy/scp-action@v0.1.7
|
||||
with:
|
||||
host: ${{ secrets.VPS_HOST }}
|
||||
username: ${{ secrets.VPS_USER }}
|
||||
key: ${{ secrets.VPS_SSH_KEY }}
|
||||
source: "dist/*"
|
||||
target: "/var/www/familiaros"
|
||||
strip_components: 1
|
||||
rm: true
|
||||
|
||||
- name: Fix permissions and reload nginx
|
||||
uses: appleboy/ssh-action@v1.0.3
|
||||
with:
|
||||
host: ${{ secrets.VPS_HOST }}
|
||||
username: ${{ secrets.VPS_USER }}
|
||||
key: ${{ secrets.VPS_SSH_KEY }}
|
||||
script: |
|
||||
set -euo pipefail
|
||||
DEST="/var/www/familiaros"
|
||||
NGINX_CONF="/etc/nginx/sites-available/familiaros.conf"
|
||||
|
||||
chown -R www-data:www-data "$DEST"
|
||||
|
||||
# Ensure clean URLs work (e.g. /pricing serves /pricing.html)
|
||||
if ! grep -q '\$uri.html' "$NGINX_CONF"; then
|
||||
sed -i 's|try_files \$uri \$uri/ /index.html;|try_files \$uri \$uri.html \$uri/ /index.html;|' "$NGINX_CONF"
|
||||
echo "Updated nginx config for clean URLs."
|
||||
fi
|
||||
|
||||
nginx -t
|
||||
systemctl reload nginx
|
||||
|
||||
- name: Smoke test
|
||||
uses: appleboy/ssh-action@v1.0.3
|
||||
with:
|
||||
host: ${{ secrets.VPS_HOST }}
|
||||
username: ${{ secrets.VPS_USER }}
|
||||
key: ${{ secrets.VPS_SSH_KEY }}
|
||||
script: |
|
||||
curl -s -o /dev/null -w "https://${{ vars.PRIMARY_DOMAIN }}/ -> %{http_code}\n" "https://${{ vars.PRIMARY_DOMAIN }}/"
|
||||
curl -s -o /dev/null -w "https://${{ vars.PRIMARY_DOMAIN }}/pricing -> %{http_code}\n" "https://${{ vars.PRIMARY_DOMAIN }}/pricing"
|
||||
curl -s -o /dev/null -w "https://${{ vars.PRIMARY_DOMAIN }}/about -> %{http_code}\n" "https://${{ vars.PRIMARY_DOMAIN }}/about"
|
||||
|
|
@ -36,7 +36,7 @@ GitHub OAuth is currently disabled by default. See [`GITHUB_AUTH_STATUS.md`](./G
|
|||
From the project directory on the VPS (or via SSH):
|
||||
|
||||
```bash
|
||||
cd /home/dev/src/FamiliarOSWebsite
|
||||
cd /home/dev/src/FamiliarOS/website
|
||||
npm ci
|
||||
npm run build
|
||||
sudo bash /home/dev/familiaros-deploy/deploy-website.sh
|
||||
|
|
@ -80,7 +80,7 @@ Optional variables: `VITE_GITHUB_OAUTH_ENABLED` (default `false`), `VITE_AUTH_AP
|
|||
The SuperTokens self-hosted backend is in the `server/` directory.
|
||||
|
||||
```bash
|
||||
cd /home/dev/src/FamiliarOSWebsite/server
|
||||
cd /home/dev/src/FamiliarOS/website/server
|
||||
npm ci
|
||||
docker compose up -d
|
||||
npm run start
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue