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/mcp/package.json packages/mcp/package.json
14COPY packages/app/package.json packages/app/package.json
15RUN bun install --frozen-lockfile --ignore-scripts
16
17FROM deps AS build
18COPY . .
19RUN bun run db:generate && bun run build
20
21FROM base AS production
22WORKDIR /app
23COPY --from=build /app/packages ./packages
24COPY --from=build /app/drizzle ./drizzle
25COPY package.json bun.lock ./
26RUN bun install --frozen-lockfile --production
27ENV NODE_ENV=production
28EXPOSE 3001
29CMD ["sh", "-c", "chown -R bun:bun /data && exec su -s /bin/sh bun -c 'bun run db:migrate && bun run start'"]