Highly ambitious ATProtocol AppView service and sdks

fix frontend config, add dockerignore

Changed files
+125 -11
frontend-v2
+51
.dockerignore
··· 1 + # Environment files 2 + *.env* 3 + !.env.example 4 + 5 + # Build artifacts 6 + **/dist/ 7 + **/.vite/ 8 + **/build/ 9 + **/out/ 10 + 11 + # Dependencies 12 + **/node_modules/ 13 + 14 + # Database files 15 + **/*.db 16 + **/*.db-shm 17 + **/*.db-wal 18 + 19 + # Git 20 + .git/ 21 + .gitignore 22 + 23 + # IDE 24 + .vscode/ 25 + .idea/ 26 + *.swp 27 + *.swo 28 + *~ 29 + 30 + # OS 31 + .DS_Store 32 + Thumbs.db 33 + 34 + # Logs 35 + *.log 36 + npm-debug.log* 37 + yarn-debug.log* 38 + yarn-error.log* 39 + 40 + # Testing 41 + **/coverage/ 42 + **/.nyc_output/ 43 + 44 + # Temporary files 45 + **/.tmp/ 46 + **/tmp/ 47 + 48 + # Docker 49 + Dockerfile* 50 + docker-compose* 51 + .dockerignore
+56 -9
deno.lock
··· 20 20 "jsr:@std/path@^1.0.6": "1.1.2", 21 21 "jsr:@std/path@^1.1.1": "1.1.2", 22 22 "jsr:@std/streams@^1.0.10": "1.0.12", 23 - "npm:@deno/vite-plugin@^1.0.5": "1.0.5_vite@7.1.10__@types+node@24.7.2__picomatch@4.0.3_@types+node@24.7.2", 23 + "npm:@deno/vite-plugin@^1.0.5": "1.0.5_vite@7.1.10__@types+node@24.7.2__picomatch@4.0.3_@types+node@24.7.2_@types+node@24.2.0", 24 24 "npm:@shikijs/core@^3.7.0": "3.13.0", 25 25 "npm:@shikijs/engine-oniguruma@^3.7.0": "3.13.0", 26 26 "npm:@shikijs/types@^3.7.0": "3.13.0", ··· 29 29 "npm:@takumi-rs/core@~0.36.2": "0.36.2", 30 30 "npm:@takumi-rs/helpers@~0.29.8": "0.29.8", 31 31 "npm:@takumi-rs/helpers@~0.36.2": "0.36.2", 32 + "npm:@types/node@*": "24.2.0", 32 33 "npm:@types/node@^24.6.0": "24.7.2", 33 34 "npm:@types/react-dom@^19.1.9": "19.2.0_@types+react@19.2.0", 34 35 "npm:@types/react-relay@^18.2.1": "18.2.1", 35 36 "npm:@types/react@^19.1.16": "19.2.0", 36 37 "npm:@types/relay-runtime@^19.0.3": "19.0.3", 37 - "npm:@vitejs/plugin-react@^5.0.4": "5.0.4_vite@7.1.10__@types+node@24.7.2__picomatch@4.0.3_@babel+core@7.28.4_@types+node@24.7.2", 38 + "npm:@vitejs/plugin-react@^5.0.4": "5.0.4_vite@7.1.10__@types+node@24.7.2__picomatch@4.0.3_@babel+core@7.28.4_@types+node@24.7.2_@types+node@24.2.0", 38 39 "npm:autoprefixer@^10.4.21": "10.4.21_postcss@8.5.6", 39 40 "npm:babel-plugin-relay@^20.1.1": "20.1.1", 40 41 "npm:clsx@^2.1.1": "2.1.1", ··· 63 64 "npm:tailwindcss@^4.1.14": "4.1.14", 64 65 "npm:ts-morph@26.0.0": "26.0.0", 65 66 "npm:typed-htmx@~0.3.1": "0.3.1", 66 - "npm:vite@*": "7.1.10_@types+node@24.7.2_picomatch@4.0.3", 67 - "npm:vite@^7.1.7": "7.1.10_@types+node@24.7.2_picomatch@4.0.3" 67 + "npm:vite@*": "7.1.10_@types+node@24.7.2_picomatch@4.0.3_@types+node@24.2.0", 68 + "npm:vite@^7.1.7": "7.1.10_@types+node@24.7.2_picomatch@4.0.3_@types+node@24.2.0" 68 69 }, 69 70 "jsr": { 70 71 "@shikijs/shiki@3.7.0": { ··· 281 282 "@deno/vite-plugin@1.0.5_vite@7.1.10__@types+node@24.7.2__picomatch@4.0.3_@types+node@24.7.2": { 282 283 "integrity": "sha512-tLja5n4dyMhcze1NzvSs2iiriBymfBlDCZIrjMTxb9O2ru0gvmV6mn5oBD2teNw5Sd92cj3YJzKwsAs8tMJXlg==", 283 284 "dependencies": [ 284 - "vite" 285 + "vite@7.1.10_@types+node@24.7.2_picomatch@4.0.3" 286 + ] 287 + }, 288 + "@deno/vite-plugin@1.0.5_vite@7.1.10__@types+node@24.7.2__picomatch@4.0.3_@types+node@24.7.2_@types+node@24.2.0": { 289 + "integrity": "sha512-tLja5n4dyMhcze1NzvSs2iiriBymfBlDCZIrjMTxb9O2ru0gvmV6mn5oBD2teNw5Sd92cj3YJzKwsAs8tMJXlg==", 290 + "dependencies": [ 291 + "vite@7.1.10_@types+node@24.7.2_picomatch@4.0.3_@types+node@24.2.0" 285 292 ] 286 293 }, 287 294 "@emnapi/core@1.5.0": { ··· 934 941 "@types/unist" 935 942 ] 936 943 }, 944 + "@types/node@24.2.0": { 945 + "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", 946 + "dependencies": [ 947 + "undici-types@7.10.0" 948 + ] 949 + }, 937 950 "@types/node@24.7.2": { 938 951 "integrity": "sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==", 939 952 "dependencies": [ 940 - "undici-types" 953 + "undici-types@7.14.0" 941 954 ] 942 955 }, 943 956 "@types/parse-json@4.0.2": { ··· 980 993 "@rolldown/pluginutils", 981 994 "@types/babel__core", 982 995 "react-refresh", 983 - "vite" 996 + "vite@7.1.10_@types+node@24.7.2_picomatch@4.0.3" 997 + ] 998 + }, 999 + "@vitejs/plugin-react@5.0.4_vite@7.1.10__@types+node@24.7.2__picomatch@4.0.3_@babel+core@7.28.4_@types+node@24.7.2_@types+node@24.2.0": { 1000 + "integrity": "sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==", 1001 + "dependencies": [ 1002 + "@babel/core", 1003 + "@babel/plugin-transform-react-jsx-self", 1004 + "@babel/plugin-transform-react-jsx-source", 1005 + "@rolldown/pluginutils", 1006 + "@types/babel__core", 1007 + "react-refresh", 1008 + "vite@7.1.10_@types+node@24.7.2_picomatch@4.0.3_@types+node@24.2.0" 984 1009 ] 985 1010 }, 986 1011 "argparse@1.0.10": { ··· 1961 1986 "integrity": "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==", 1962 1987 "bin": true 1963 1988 }, 1989 + "undici-types@7.10.0": { 1990 + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==" 1991 + }, 1964 1992 "undici-types@7.14.0": { 1965 1993 "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==" 1966 1994 }, ··· 2023 2051 "vite@7.1.10_@types+node@24.7.2_picomatch@4.0.3": { 2024 2052 "integrity": "sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==", 2025 2053 "dependencies": [ 2026 - "@types/node", 2054 + "@types/node@24.7.2", 2055 + "esbuild", 2056 + "fdir", 2057 + "picomatch@4.0.3", 2058 + "postcss", 2059 + "rollup", 2060 + "tinyglobby" 2061 + ], 2062 + "optionalDependencies": [ 2063 + "fsevents" 2064 + ], 2065 + "optionalPeers": [ 2066 + "@types/node@24.7.2" 2067 + ], 2068 + "bin": true 2069 + }, 2070 + "vite@7.1.10_@types+node@24.7.2_picomatch@4.0.3_@types+node@24.2.0": { 2071 + "integrity": "sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==", 2072 + "dependencies": [ 2073 + "@types/node@24.2.0", 2027 2074 "esbuild", 2028 2075 "fdir", 2029 2076 "picomatch@4.0.3", ··· 2035 2082 "fsevents" 2036 2083 ], 2037 2084 "optionalPeers": [ 2038 - "@types/node" 2085 + "@types/node@24.2.0" 2039 2086 ], 2040 2087 "bin": true 2041 2088 },
+7 -1
frontend-v2.fly.toml
··· 8 8 9 9 [build] 10 10 dockerfile = './frontend-v2/Dockerfile' 11 + [build.args] 12 + VITE_API_URL = 'https://slices-api.fly.dev' 13 + VITE_SLICE_URI = 'at://did:plc:bcgltzqazw5tb6k2g3ttenbj/network.slices.slice/3lymhd4jhrd2z' 14 + VITE_ADMIN_DIDS = 'did:plc:bcgltzqazw5tb6k2g3ttenbj' 11 15 12 16 [env] 13 - ADMIN_DID = 'did:plc:bcgltzqazw5tb6k2g3ttenbj' 14 17 API_URL = 'https://slices-api.fly.dev' 15 18 DATABASE_URL = '/data/slices.db' 16 19 DENO_ENV = 'production' 17 20 DOCS_PATH = '/app/docs' 18 21 PORT = '8080' 19 22 SLICE_URI = 'at://did:plc:bcgltzqazw5tb6k2g3ttenbj/network.slices.slice/3lymhd4jhrd2z' 23 + VITE_API_URL = 'https://slices-api.fly.dev' 24 + VITE_SLICE_URI = 'at://did:plc:bcgltzqazw5tb6k2g3ttenbj/network.slices.slice/3lymhd4jhrd2z' 25 + VITE_ADMIN_DIDS = 'did:plc:bcgltzqazw5tb6k2g3ttenbj' 20 26 21 27 [[mounts]] 22 28 source = 'frontend_data'
+11 -1
frontend-v2/Dockerfile
··· 1 1 FROM denoland/deno:2.5.1 2 2 3 + # Build arguments for Vite environment variables (embedded at build time) 4 + ARG VITE_API_URL 5 + ARG VITE_SLICE_URI 6 + ARG VITE_ADMIN_DIDS 7 + 3 8 # Install sqlite3 4 9 RUN apt-get update && apt-get install -y sqlite3 && rm -rf /var/lib/apt/lists/* 5 10 ··· 29 34 WORKDIR /app/frontend-v2 30 35 RUN deno cache ./server/main.ts 31 36 32 - # Build the Vite frontend (fs.close bug fixed in Deno 2.5.1) 37 + # Set Vite environment variables for build (these get embedded in the bundle) 38 + ENV VITE_API_URL=$VITE_API_URL 39 + ENV VITE_SLICE_URI=$VITE_SLICE_URI 40 + ENV VITE_ADMIN_DIDS=$VITE_ADMIN_DIDS 41 + 42 + # Build the Vite frontend 33 43 RUN deno task build 34 44 35 45 # Expose port