{"id":49519631,"url":"https://github.com/filozone/filoz-websites","last_synced_at":"2026-05-01T23:04:41.342Z","repository":{"id":352909441,"uuid":"1217024053","full_name":"FilOzone/filoz-websites","owner":"FilOzone","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-21T16:36:04.000Z","size":46174,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-21T18:23:01.792Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Astro","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FilOzone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-21T13:20:53.000Z","updated_at":"2026-04-21T16:36:08.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/FilOzone/filoz-websites","commit_stats":null,"previous_names":["filozone/filoz-websites"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/FilOzone/filoz-websites","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FilOzone%2Ffiloz-websites","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FilOzone%2Ffiloz-websites/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FilOzone%2Ffiloz-websites/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FilOzone%2Ffiloz-websites/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FilOzone","download_url":"https://codeload.github.com/FilOzone/filoz-websites/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FilOzone%2Ffiloz-websites/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32515839,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-01T23:04:32.556Z","updated_at":"2026-05-01T23:04:41.334Z","avatar_url":"https://github.com/FilOzone.png","language":"Astro","funding_links":[],"categories":[],"sub_categories":[],"readme":"# filoz-websites\n\nMono-repo for FilOz web properties. Same architecture as [foc-websites](https://github.com/TippyFlitsUK/foc-websites) — each site is an [Astro](https://astro.build) project under `sites/`, deployed to Filecoin Onchain Cloud by [filecoin-nova](https://github.com/FilOzone/filecoin-nova).\n\nPlan + rollout tracker: [FilOzone/tpm-utils#2](https://github.com/FilOzone/tpm-utils/issues/2)\n\n## Architecture\n\n```\nBrowser → *.filoz.org (prod) / *.filecoincloud.io (staging)\n        → Cloudflare edge → Worker → KV[hostname] → current CID\n        → fallback IPFS gateways: dweb.link → ipfs.io → 4everland.io\n        → FOC-pinned content\n```\n\nBoth the Worker and the deploy pipeline live in [filecoin-nova](https://github.com/FilOzone/filecoin-nova). This repo only carries site content.\n\nENS fallback: `*.filnova.eth` (staging) / `*.filoz.eth` (prod), resolvable via `eth.limo`.\n\n## Repo layout\n\n```\nfiloz-websites/\n  .github/workflows/deploy.yml   10-line caller for nova's reusable workflow\n  sites/\u003cname\u003e/\n    deploy.json                   hostname + cf_zone_id + ens_name\n    package.json                  build scripts\n    src/, public/                 site content\n```\n\n## Sites\n\n| Site | Production | Staging | ENS |\n|---|---|---|---|\n| filoz-home | [filoz.org](https://filoz.org) | [filoz.filecoincloud.io](https://filoz.filecoincloud.io) | [filoz.filnova.eth](https://filoz.filnova.eth.limo) |\n| dealbot | [dealbot.filoz.org](https://dealbot.filoz.org) | [dealbot.filecoincloud.io](https://dealbot.filecoincloud.io) | [dealbot.filnova.eth](https://dealbot.filnova.eth.limo) |\n| dealbot-staging | [staging.dealbot.filoz.org](https://staging.dealbot.filoz.org) | [dealbot-staging.filecoincloud.io](https://dealbot-staging.filecoincloud.io) | [dealbot-staging.filnova.eth](https://dealbot-staging.filnova.eth.limo) |\n\n## Development\n\n```bash\ncd sites/\u003cname\u003e\nnpm install\nnpm run dev\nnpm run build\n```\n\n## Deploy\n\nPush to `main` touching `sites/**`. CI calls filecoin-nova's reusable workflow which builds each changed site, pins to FOC, updates KV, DNSLink, and ENS.\n\n`.github/workflows/deploy.yml`:\n\n```yaml\nname: Deploy\non:\n  push: { branches: [main], paths: ['sites/**'] }\n  workflow_dispatch:\njobs:\n  deploy:\n    uses: FilOzone/filecoin-nova/.github/workflows/deploy-sites.yml@v0.7.6\n    secrets:\n      NOVA_PIN_KEY:         ${{ secrets.NOVA_PIN_KEY }}\n      NOVA_WALLET_ADDRESS:  ${{ secrets.NOVA_WALLET_ADDRESS }}\n      NOVA_ENS_KEY:         ${{ secrets.NOVA_ENS_KEY }}\n      NOVA_RPC_URL:         ${{ secrets.NOVA_RPC_URL }}\n      CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}\n```\n\nRepo variables (for reusing FOC's existing `foc-gateway-proxy` Worker rather than spinning up a new one per-repo):\n\n```\nNOVA_WORKER_NAME       = foc-gateway-proxy\nNOVA_KV_NAMESPACE_ID   = 6f6e9038f48742e7b7e4a7de8733460a\nNOVA_WORKER_UPLOAD     = skip\n```\n\nRequired GitHub secrets: `NOVA_PIN_KEY`, `NOVA_WALLET_ADDRESS`, `NOVA_ENS_KEY`, `NOVA_RPC_URL`, `CLOUDFLARE_API_TOKEN`.\n\n## Per-site `deploy.json`\n\n```json\n{\n  \"hostname\": \"dealbot.filecoincloud.io\",\n  \"cf_zone_id\": \"ec64112d49365c91cf3c8db1424b5632\",\n  \"ens_name\": \"dealbot.filnova.eth\"\n}\n```\n\nOptional extras: `\"dist\": \"site\"` for pre-built sites, `\"apiProxy\": { \"/api\": \"https://dealbot.filoz.org\" }` for reverse-proxied API routes.\n\n## Special considerations\n\n- **dealbot** frontend is a React SPA calling a backend API. The shared Worker proxies `/api/*` to the NestJS backend at `dealbot.filoz.org` / `staging.dealbot.filoz.org` — same-origin from the browser's perspective, no CORS.\n- **filoz-home** rebuilds a Webflow site; Webflow IX2 animations depend on `data-wf-page` attributes — preserve them per page during the Hugo → Astro port.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilozone%2Ffiloz-websites","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffilozone%2Ffiloz-websites","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilozone%2Ffiloz-websites/lists"}