Merge pull request #25 from WaveringAna/codex/private-sites-v1
private sites v1: owner + share-link access, migration-ready for permissioned data
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647# wisp services run on the host; infrastructure and the reference pds run in compose.NODE_ENV=developmentLOCAL_DEV=truePORT=8000DOMAIN=http://127.0.0.1:8000CLIENT_NAME=Wisp.Place DevBASE_DOMAIN=wisp.localhostPRIVATE_HOST=priv.wisp.localhost:3001
DATABASE_URL=postgres://postgres:postgres@127.0.0.1:5432/wispREDIS_URL=redis://127.0.0.1:6379
S3_BUCKET=wisp-devPRIVATE_S3_BUCKET=wisp-private-devS3_REGION=us-east-1S3_ENDPOINT=http://127.0.0.1:9000S3_FORCE_PATH_STYLE=trueAWS_ACCESS_KEY_ID=minioadminAWS_SECRET_ACCESS_KEY=minioadmin
# Where a private origin sends visitors to prove their identity. The private hosts cannot# read the account cookie by design, so sign-in happens on main-app and returns a handoff.MAIN_APP_URL=http://localhost:8000
HOSTING_SERVICE_URL=http://127.0.0.1:3001HOSTING_PORT=3001BASE_HOST=wisp.localhost
FIREHOSE_SERVICE=ws://localhost:3300FIREHOSE_SERVICE_SECONDARY=HEALTH_PORT=3002WISP_PLC_DIRECTORY_URL=http://127.0.0.1:2582PDS_FETCH_REWRITE_FROM=http://localhost:3300PDS_FETCH_REWRITE_TO=http://pds.localhost:3300
OAUTH_HANDLE_RESOLVER_URL=http://localhost:3300/xrpc/com.atproto.identity.resolveHandleOAUTH_PLC_DIRECTORY_URL=http://127.0.0.1:2582OAUTH_ALLOW_HTTP=true
SKIP_ADMIN_SETUP=trueDISABLE_DNS_WORKER=true
# Host port overrides for the dev infrastructure. Change these if another local# service already binds the defaults; docker-compose.dev.yml reads them directly.# Remember to update DATABASE_URL and REDIS_URL to match.# DEV_POSTGRES_PORT=5432# DEV_REDIS_PORT=63792 unmodified lines345678910111246 unmodified lines2 unmodified linescache/site-images/# See https://help.github.com/articles/ignoring-files/ for more about ignoring files..env.dev/atproto/*!.dev/atproto/.gitkeep# dependenciesnode_modules**/node_modules/.pnp46 unmodified lines122345654 unmodified lines# Build stageFROM oven/bun:1.3.7-alpine AS buildFROM oven/bun:1.3.14-alpine AS build
WORKDIR /app
# Copy workspace configuration54 unmodified lines36 unmodified lines3738394041414243444546474849505152535455120 unmodified linesExpand all36 unmodified lines
## Development
```bash# Backend# bun install will install packages across the monorepobun install
# PostgreSQL, Redis, MinIO, local PLC, and seeded reference PDSbun run dev:infra
# Backendbun run dev```
The local PDS provides `alice.test` and `bob.test` without production credentials. See the [local development network guide](./docs/src/content/docs/local-development.md) for service commands, credentials, and the reserved `*.localhost` Wisp hostnames..env file for local dev
```envDATABASE_URL=postgres://postgres:postgres@localhost:5432/wisp120 unmodified linesExpand all110 unmodified linesExpand all111112113114115115116117118178 unmodified linesExpand all297298299300301302303304305306307308306307308309309310311312691 unmodified linesExpand all100410051006100710081009101010111011101210121013101410151083 unmodified linesExpand all110 unmodified linesExpand all "@wispplace/database": "workspace:*", "@wispplace/fs-utils": "workspace:*", "@wispplace/lexicons": "workspace:*", "@wispplace/observability": "workspace:*", "@wispplace/standard-site": "workspace:*", "actor-typeahead": "^0.1.2", "atproto-ui": "^0.12.0", "bun-plugin-tailwind": "^0.1.2", "class-variance-authority": "^0.7.1",178 unmodified linesExpand all "packages/@wispplace/page-generators": { "name": "@wispplace/page-generators", "version": "1.0.0", }, "packages/@wispplace/private-sites": { "name": "@wispplace/private-sites", "version": "1.0.0", }, "packages/@wispplace/safe-fetch": { "name": "@wispplace/safe-fetch", "version": "1.0.0", }, "packages/@wispplace/standard-site": { "name": "@wispplace/standard-site", "version": "1.0.0", }, "packages/@wispplace/tiered-storage": { "name": "@wispplace/tiered-storage", "version": "1.0.0", "dependencies": {691 unmodified linesExpand all "@wispplace/observability": ["@wispplace/observability@workspace:packages/@wispplace/observability"],
"@wispplace/page-generators": ["@wispplace/page-generators@workspace:packages/@wispplace/page-generators"],
"@wispplace/private-sites": ["@wispplace/private-sites@workspace:packages/@wispplace/private-sites"],
"@wispplace/safe-fetch": ["@wispplace/safe-fetch@workspace:packages/@wispplace/safe-fetch"],
"@wispplace/standard-site": ["@wispplace/standard-site@workspace:packages/@wispplace/standard-site"],
"@wispplace/tiered-storage": ["@wispplace/tiered-storage@workspace:packages/@wispplace/tiered-storage"],
"abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="],
1083 unmodified linesExpand all