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:
OpenPets Dev 2026-06-17 20:50:45 +00:00
parent 65ac83849e
commit 1e12a9a54b
4 changed files with 47 additions and 81 deletions

44
.github/workflows/deploy-website.yml vendored Normal file
View 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
View file

@ -11,6 +11,7 @@ apps/desktop/dist-electron
local/
.slim/deepwork/
docs
!website/docs
*.diff
MERGE_NOTES.md
NEW_FILES.txt

View file

@ -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"

View file

@ -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