Your music, beautifully tracked. All yours. (coming soon) teal.fm
teal-fm atproto

i think that's everything

+25 -4
+22 -1
apps/amethyst/Dockerfile
··· 1 1 FROM node:22-slim AS builder 2 + ARG CLIENT_ADDRESS 3 + 2 4 ENV PNPM_HOME="/pnpm" 3 5 ENV PATH="$PNPM_HOME:$PATH" 4 6 RUN corepack enable ··· 19 21 # Copy the aqua app 20 22 COPY apps/amethyst/ ./apps/amethyst/ 21 23 24 + # Copy .env 25 + COPY ../../.env ./apps/amethyst/.env 26 + 22 27 # Build the aqua app 23 28 WORKDIR /app/apps/amethyst 24 29 RUN pnpm install 25 30 RUN pnpm run build:web 26 31 32 + #create the client-json 33 + RUN echo '{ \ 34 + "redirect_uris": ["https://'"${CLIENT_ADDRESS}"'/auth/callback"], \ 35 + "response_types": ["code"], \ 36 + "grant_types": ["authorization_code", "refresh_token"], \ 37 + "scope": "atproto transition:generic", \ 38 + "token_endpoint_auth_method": "none", \ 39 + "application_type": "web", \ 40 + "client_id": "https://'"${CLIENT_ADDRESS}"'/client-metadata.json", \ 41 + "client_name": "teal", \ 42 + "client_uri": "https://'"${CLIENT_ADDRESS}"'", \ 43 + "dpop_bound_access_tokens": true \ 44 + }' > /app/client-metadata.json \ 45 + 46 + 27 47 FROM caddy:2.1.0-alpine AS caddy 28 48 EXPOSE 80 29 49 EXPOSE 443 30 50 EXPOSE 443/udp 31 51 COPY /apps/amethyst/Caddyfile /etc/caddy/Caddyfile 32 - COPY --from=builder /app/apps/amethyst/build /srv 52 + COPY --from=builder /app/apps/amethyst/build /srv 53 + COPY --from=builder /app/client-metadata.json /srv/client-metadata.json
+1 -1
apps/amethyst/package.json
··· 9 9 "ios": "expo run:ios", 10 10 "web": "expo start --web", 11 11 "build": "expo export --output-dir ./build --platform all", 12 - "build:web": "expo export --output-dir ./build --platform web", 12 + "build:web": "expo export --output-dir ./build --platform web --clear", 13 13 "test": "jest --watchAll", 14 14 "lexgen": "lex gen-server ./lexicons/generated/server/ ./lexicons/src/" 15 15 },
-1
apps/amethyst/stores/authenticationSlice.tsx
··· 44 44 ) => { 45 45 // check if we have CF_PAGES_URL set. if not, use localhost 46 46 const baseUrl = process.env.EXPO_PUBLIC_BASE_URL || 'http://localhost:8081'; 47 - console.log('Using base URL:', baseUrl); 48 47 const initialAuth = createOAuthClient(baseUrl, 'bsky.social'); 49 48 50 49 console.log('Auth client created!');
+2 -1
compose.dev.yml
··· 20 20 build: 21 21 context: . 22 22 dockerfile: apps/amethyst/Dockerfile 23 + args: 24 + - CLIENT_ADDRESS=${CLIENT_ADDRESS} 23 25 ports: 24 26 - "80:80" 25 27 - "443:443" ··· 31 33 - app_network 32 34 environment: 33 35 CLIENT_ADDRESS: ${CLIENT_ADDRESS} 34 - EXPO_PUBLIC_DID_WEB: ${PUBLIC_DID_WEB} 35 36 postgres: 36 37 image: postgres:latest 37 38 container_name: postgres_db