mirror of
https://github.com/coleam00/Archon
synced 2026-04-21 13:37:41 +00:00
fix(docker): CRLF entrypoint + Windows Docker Desktop docs
- .gitattributes: force LF for *.sh, docker-entrypoint.sh, Caddyfile* - docker-entrypoint.sh: normalize to LF - Caddyfile.example: normalize to LF - Dockerfile: add sed CRLF strip as defense-in-depth after COPY - docs/docker.md: add "Local Docker Desktop" section for Windows/macOS Closes #869
This commit is contained in:
parent
550c8417e5
commit
b739fb667a
3 changed files with 64 additions and 1 deletions
6
.gitattributes
vendored
6
.gitattributes
vendored
|
|
@ -1,2 +1,8 @@
|
|||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
|
||||
# Force LF line endings for files that run inside Linux containers
|
||||
*.sh text eol=lf
|
||||
docker-entrypoint.sh text eol=lf
|
||||
Caddyfile text eol=lf
|
||||
Caddyfile.example text eol=lf
|
||||
|
|
|
|||
|
|
@ -157,8 +157,10 @@ RUN gosu appuser git config --global --add safe.directory '/.archon/workspaces'
|
|||
gosu appuser git config --global --add safe.directory '/.archon/worktrees/*'
|
||||
|
||||
# Copy entrypoint script (fixes volume permissions, drops to appuser)
|
||||
# sed strips Windows CRLF in case .gitattributes eol=lf was bypassed
|
||||
COPY docker-entrypoint.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
RUN sed -i 's/\r$//' /usr/local/bin/docker-entrypoint.sh \
|
||||
&& chmod +x /usr/local/bin/docker-entrypoint.sh
|
||||
|
||||
# Default port (matches .env.example PORT=3000)
|
||||
EXPOSE 3000
|
||||
|
|
|
|||
|
|
@ -74,6 +74,61 @@ docker compose --profile with-db --profile cloud up -d
|
|||
|
||||
---
|
||||
|
||||
## Local Docker Desktop (Windows / macOS)
|
||||
|
||||
Run Archon locally with Docker Desktop — no domain, no VPS required. Uses SQLite and the Web UI only.
|
||||
|
||||
### Quick start
|
||||
|
||||
```bash
|
||||
git clone https://github.com/dynamous-community/remote-coding-agent.git
|
||||
cd remote-coding-agent
|
||||
cp .env.example .env
|
||||
# Edit .env: set CLAUDE_CODE_OAUTH_TOKEN or CLAUDE_API_KEY
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Access the Web UI at **http://localhost:3000**.
|
||||
|
||||
### Windows-specific notes
|
||||
|
||||
**Build from WSL, not PowerShell.** Docker Desktop on Windows cannot follow Bun workspace symlinks during the build context transfer. If you see `The file cannot be accessed by the system`, open a WSL terminal:
|
||||
|
||||
```bash
|
||||
cd /mnt/c/Users/YourName/path/to/remote-coding-agent
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
**Line endings:** The repo uses `.gitattributes` to force LF endings for shell scripts. If you cloned before this was added and see `exec docker-entrypoint.sh: no such file or directory`, re-clone or run:
|
||||
|
||||
```bash
|
||||
git rm --cached -r .
|
||||
git reset --hard
|
||||
```
|
||||
|
||||
### What you get
|
||||
|
||||
| Feature | Status |
|
||||
|---------|--------|
|
||||
| Web UI | http://localhost:3000 |
|
||||
| Database | SQLite (automatic, zero setup) |
|
||||
| HTTPS / Caddy | Not needed locally |
|
||||
| Auth | None (single-user, localhost only) |
|
||||
| Platform adapters | Optional (Telegram, Slack, etc.) |
|
||||
|
||||
### Using PostgreSQL locally (optional)
|
||||
|
||||
```bash
|
||||
docker compose --profile with-db up -d
|
||||
```
|
||||
|
||||
Then add to `.env`:
|
||||
```env
|
||||
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/remote_coding_agent
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Manual Server Setup
|
||||
|
||||
Step-by-step alternative if you prefer not to use cloud-init, or need more control.
|
||||
|
|
|
|||
Loading…
Reference in a new issue