Exosphere is a set of small, modular, self-hostable community tools built on the AT Protocol.
app.exosphere.site
1FROM oven/bun:1 AS base
2
3WORKDIR /app
4
5# Install dependencies
6FROM base AS deps
7COPY package.json bun.lock ./
8COPY packages/core/package.json packages/core/package.json
9COPY packages/client/package.json packages/client/package.json
10COPY packages/indexer/package.json packages/indexer/package.json
11COPY packages/feeds/package.json packages/feeds/package.json
12COPY packages/feature-requests/package.json packages/feature-requests/package.json
13COPY packages/kanban/package.json packages/kanban/package.json
14COPY packages/mcp/package.json packages/mcp/package.json
15COPY packages/app/package.json packages/app/package.json
16RUN bun install --frozen-lockfile --ignore-scripts
17
18FROM deps AS build
19COPY . .
20RUN bun run db:generate && bun run build
21
22FROM base AS production
23WORKDIR /app
24COPY --from=build /app/packages ./packages
25COPY --from=build /app/drizzle ./drizzle
26COPY package.json bun.lock ./
27RUN bun install --frozen-lockfile --production
28ENV NODE_ENV=production
29EXPOSE 3001
30CMD ["sh", "-c", "chown -R bun:bun /data && exec su -s /bin/sh bun -c 'bun run db:migrate && bun run start'"]