diff options
| author | Leonard Kugis <leonard@kug.is> | 2026-01-31 15:53:38 +0100 |
|---|---|---|
| committer | Leonard Kugis <leonard@kug.is> | 2026-01-31 15:53:38 +0100 |
| commit | ad01ee9cc6bf002ef03e201af25fb6fa184c2129 (patch) | |
| tree | 43b435043aabab7994a29ae501e965b1f3db3870 | |
| download | aichat-dev-docker-ad01ee9cc6bf002ef03e201af25fb6fa184c2129.tar.gz | |
Initial commit
| -rw-r--r-- | .gitignore | 99 | ||||
| -rw-r--r-- | Dockerfile | 33 | ||||
| -rw-r--r-- | docker-compose.yml | 15 |
3 files changed, 147 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e13ddc0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,99 @@ +# Created by https://www.toptal.com/developers/gitignore/api/linux,windows,macos,vim +# Edit at https://www.toptal.com/developers/gitignore?templates=linux,windows,macos,vim + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### Vim ### +# Swap +[._]*.s[a-v][a-z] +!*.svg # comment out if you don't need vector files +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.toptal.com/developers/gitignore/api/linux,windows,macos,vim + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ce98abe --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM rust:1-bookworm AS builder +RUN cargo install --locked aichat \ + && cargo install --locked argc + +FROM debian:bookworm + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install -y --no-install-recommends \ + bash ca-certificates curl git jq \ + ripgrep fd-find \ + unzip zip xz-utils \ + less nano vim-tiny tmux \ + openssh-client \ + python3 python3-pip \ + nodejs npm \ + build-essential pkg-config \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=builder /usr/local/cargo/bin/aichat /usr/local/bin/aichat +COPY --from=builder /usr/local/cargo/bin/argc /usr/local/bin/argc + +RUN useradd -m -s /bin/bash dev \ + && mkdir -p /work /projects \ + && chown -R dev:dev /work /projects + +USER dev + +ENV AICHAT_FUNCTIONS_DIR=/opt/llm-functions + +WORKDIR /work +CMD ["bash"] + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..77e44d5 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +services: + aichat: + build: + context: . + image: aichat-dev:latest + stdin_open: true + tty: true + environment: + AICHAT_FUNCTIONS_DIR: /opt/llm-functions + HOME: /home/dev + volumes: + - ./config:/home/dev/.config/aichat:rw + - ./projects:/projects:rw + - ./llm-functions:/opt/llm-functions:ro + working_dir: /work |
