| | |
| | FROM node:18 AS frontend-builder |
| |
|
| | |
| | WORKDIR /app |
| | RUN git clone https://github.com/stitionai/devika.git . |
| | WORKDIR /app/ui |
| |
|
| | |
| | RUN npm install |
| | RUN npm run build |
| |
|
| | |
| | FROM python:3.10-slim AS backend-builder |
| |
|
| | WORKDIR /app |
| |
|
| | |
| | COPY --from=frontend-builder /app /app |
| |
|
| | |
| | RUN apt-get update && apt-get install -y \ |
| | git \ |
| | gcc \ |
| | g++ \ |
| | && rm -rf /var/lib/apt/lists/* |
| |
|
| | |
| | RUN pip install uv && \ |
| | uv venv && \ |
| | . /app/.venv/bin/activate && \ |
| | uv pip install -r /app/requirements.txt && \ |
| | playwright install --with-deps |
| |
|
| | |
| | FROM python:3.10-slim |
| |
|
| | WORKDIR /app |
| |
|
| | |
| | COPY --from=backend-builder /app /app |
| | COPY --from=backend-builder /root/.cache/ms-playwright /root/.cache/ms-playwright |
| |
|
| | |
| | RUN apt-get update && apt-get install -y \ |
| | bun \ |
| | && rm -rf /var/lib/apt/lists/* |
| |
|
| | |
| | RUN npm install -g serve |
| |
|
| | |
| | |
| | |
| | EXPOSE 1337 7860 |
| |
|
| | |
| | RUN echo '#!/bin/bash\n\ |
| | # Activate Python virtual environment\n\ |
| | . /app/.venv/bin/activate\n\ |
| | \n\ |
| | # Start backend\n\ |
| | python /app/devika.py &\n\ |
| | \n\ |
| | # Start frontend on port 7860\n\ |
| | cd /app/ui && serve -s build -l 7860\n\ |
| | \n\ |
| | # Keep container running\n\ |
| | wait' > /app/start.sh && chmod +x /app/start.sh |
| |
|
| | |
| | RUN if [ ! -f /app/config.toml ]; then \ |
| | touch /app/config.toml && \ |
| | echo "[settings]" >> /app/config.toml && \ |
| | echo "SQLITE_DB = \"/app/db/devika.db\"" >> /app/config.toml && \ |
| | echo "SCREENSHOTS_DIR = \"/app/screenshots\"" >> /app/config.toml && \ |
| | echo "PDFS_DIR = \"/app/pdfs\"" >> /app/config.toml && \ |
| | echo "PROJECTS_DIR = \"/app/projects\"" >> /app/config.toml && \ |
| | echo "LOGS_DIR = \"/app/logs\"" >> /app/config.toml && \ |
| | echo "REPOS_DIR = \"/app/repos\"" >> /app/config.toml; \ |
| | fi |
| |
|
| | |
| | RUN mkdir -p /app/db /app/screenshots /app/pdfs /app/projects /app/logs /app/repos |
| |
|
| | CMD ["/app/start.sh"] |