Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# EditorConfig helps maintain consistent coding styles for multiple developers
# working on the same project across various editors and IDEs
# http://editorconfig.org

root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true

# Markdown files sometimes need trailing whitespace
[*.md]
trim_trailing_whitespace = false
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Anthropic API key for billing usage stats (optional — local logs work without it)
ANTHROPIC_API_KEY=

# Path to the claude binary (defaults to claude from PATH)
CLAUDE_BIN=claude

# Backend server port (default: 9998)
PORT=9998

# Allowed CORS origin for the Vite dev server (dev only; not needed in production)
FRONTEND_ORIGIN=http://localhost:9999
44 changes: 44 additions & 0 deletions .github/workflows/claude-code-webui-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: claude-code-webui CI

on:
pull_request:
branches: [main]

jobs:
lint-and-build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'npm'
cache-dependency-path: |
backend/package-lock.json
frontend/package-lock.json

- name: Install backend deps
working-directory: backend
run: npm ci

- name: Install frontend deps
working-directory: frontend
run: npm ci

- name: Lint backend
working-directory: backend
run: npm run lint

- name: Lint frontend
working-directory: frontend
run: npm run lint

- name: Build frontend
working-directory: frontend
run: npm run build

- name: Build backend
working-directory: backend
run: npm run build
41 changes: 41 additions & 0 deletions .github/workflows/claude-code-webui-docker-build-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: claude-code-webui Docker build & push

on:
workflow_dispatch:
inputs:
version_tag:
description: 'Version tag (e.g. 1.0.0) — also tags :latest'
required: false
default: ''

jobs:
docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v4

- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set tags
id: tags
run: |
BASE="ghcr.io/${{ github.repository_owner }}/claude-code-webui"
TAGS="${BASE}:latest"
if [ -n "${{ inputs.version_tag }}" ]; then
TAGS="${TAGS},${BASE}:${{ inputs.version_tag }}"
fi
echo "tags=${TAGS}" >> "$GITHUB_OUTPUT"

- uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ${{ steps.tags.outputs.tags }}
Loading
Loading