tangled
alpha
login
or
join now
teal.fm
/
teal
109
fork
atom
Your music, beautifully tracked. All yours. (coming soon)
teal.fm
teal-fm
atproto
109
fork
atom
overview
issues
pulls
pipelines
i think that's everything
baileytownsend.dev
9 months ago
a17062ea
5f744b85
+25
-4
4 changed files
expand all
collapse all
unified
split
apps
amethyst
Dockerfile
package.json
stores
authenticationSlice.tsx
compose.dev.yml
+22
-1
apps/amethyst/Dockerfile
···
1
1
FROM node:22-slim AS builder
2
2
+
ARG CLIENT_ADDRESS
3
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
24
+
# Copy .env
25
25
+
COPY ../../.env ./apps/amethyst/.env
26
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
32
+
#create the client-json
33
33
+
RUN echo '{ \
34
34
+
"redirect_uris": ["https://'"${CLIENT_ADDRESS}"'/auth/callback"], \
35
35
+
"response_types": ["code"], \
36
36
+
"grant_types": ["authorization_code", "refresh_token"], \
37
37
+
"scope": "atproto transition:generic", \
38
38
+
"token_endpoint_auth_method": "none", \
39
39
+
"application_type": "web", \
40
40
+
"client_id": "https://'"${CLIENT_ADDRESS}"'/client-metadata.json", \
41
41
+
"client_name": "teal", \
42
42
+
"client_uri": "https://'"${CLIENT_ADDRESS}"'", \
43
43
+
"dpop_bound_access_tokens": true \
44
44
+
}' > /app/client-metadata.json \
45
45
+
46
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
32
-
COPY --from=builder /app/apps/amethyst/build /srv
52
52
+
COPY --from=builder /app/apps/amethyst/build /srv
53
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
12
-
"build:web": "expo export --output-dir ./build --platform web",
12
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
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
23
+
args:
24
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
34
-
EXPO_PUBLIC_DID_WEB: ${PUBLIC_DID_WEB}
35
36
postgres:
36
37
image: postgres:latest
37
38
container_name: postgres_db