Compare commits
No commits in common. "9069ebe0d77c6f47c8f81b904f5a5d74782d5ff2" and "e981784c48d54abf87962d736dd8a021873956c7" have entirely different histories.
9069ebe0d7
...
e981784c48
1 changed files with 0 additions and 98 deletions
|
@ -1,98 +0,0 @@
|
||||||
---
|
|
||||||
date: 2025-05-18
|
|
||||||
title: Code Server
|
|
||||||
tags:
|
|
||||||
- homelab
|
|
||||||
- development
|
|
||||||
- software
|
|
||||||
- code-assistant
|
|
||||||
---
|
|
||||||
|
|
||||||
I recently started using [Forgejo](https://forgejo.org/) for managing my personal projects (including this blog content).
|
|
||||||
Prior to this, I was using self-hosted [GitLab](https://about.gitlab.com/); maybe I'll write a full post about this
|
|
||||||
in the future, but basically I made the change because GitLab in Docker was a real memory hog and I much prefer
|
|
||||||
open source solutions where available anyway. One thing I missed from GitLab (and GitHub) is the built-in web IDE for
|
|
||||||
making changes without having to clone the project locally. I found [Coder](https://coder.com/docs/code-server)
|
|
||||||
which provides a containerized VSCode PWA that I plan to use as an alternative to GitHub Codespaces and GitLab
|
|
||||||
workspaces.
|
|
||||||
|
|
||||||
## What is Code Server
|
|
||||||
Code Server is an open source container distribution of VSCodium. VSCodium is the open source release of VSCode (think
|
|
||||||
Chromium and Google Chrome). I personally have more experience with PyCharm and other JetBrains IDEs, but VSCode
|
|
||||||
is another popular option and I've been making the transition at work from PyCharm to VSCode after comparing the
|
|
||||||
LLM integration between them. Long story short, VSCode is miles ahead of JetBrains IDEs for code writing and
|
|
||||||
LLM context management as of sometime last week when I tested them both.
|
|
||||||
|
|
||||||
I haven't fully evaluated the differences between VSCode and Code Server yet, but in the context of a replacement for
|
|
||||||
what I had with GitLab and GitHub I am satisfied with what I see in Code Server.
|
|
||||||
|
|
||||||
|
|
||||||
## Deployment
|
|
||||||
Deployment is as simple as starting a Docker container. In addition to the documented setup process, I also mounted
|
|
||||||
a directory with my SSH configuration and keys so that I can easily connect to GitHub and my private Forgejo via SSH.
|
|
||||||
|
|
||||||
I configured nginx ingress (for access from my LAN only). For most deployments, its probably easier to just use IP
|
|
||||||
addresses but I like using nginx so that its a little easier to move deployments around and just update Nginx to point at
|
|
||||||
the appropriate IP address. I've included my site config below in case anyone reading this wants to achieve something
|
|
||||||
similar. I don't know that this is optimal, but it is working.
|
|
||||||
|
|
||||||
```
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
listen 443 ssl;
|
|
||||||
server_name code.*;
|
|
||||||
|
|
||||||
include /config/nginx/ssl.conf;
|
|
||||||
add_header Front-End-Https on;
|
|
||||||
|
|
||||||
|
|
||||||
location / {
|
|
||||||
include /config/nginx/local_only.conf;
|
|
||||||
include /config/nginx/resolver.conf;
|
|
||||||
|
|
||||||
# Advanced Proxy Config
|
|
||||||
send_timeout 5m;
|
|
||||||
proxy_read_timeout 240;
|
|
||||||
proxy_send_timeout 240;
|
|
||||||
proxy_connect_timeout 240;
|
|
||||||
|
|
||||||
# Basic Proxy Config
|
|
||||||
proxy_set_header Host $host:$server_port;
|
|
||||||
proxy_set_header X-Client-IP $http_x_forwarded_for;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Forwarded-Proto https;
|
|
||||||
proxy_redirect http:// $scheme://;
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection upgrade;
|
|
||||||
proxy_set_header Accept-Encoding gzip;
|
|
||||||
proxy_cache_bypass $cookie_session;
|
|
||||||
proxy_no_cache $cookie_session;
|
|
||||||
proxy_buffers 32 4k;
|
|
||||||
proxy_max_temp_file_size 2048m;
|
|
||||||
|
|
||||||
proxy_set_header X-Forwarded-Host <coder domain name>;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Ssl on;
|
|
||||||
proxy_pass http://coder:8080/;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## First Impressions
|
|
||||||
I wrote the bulk of this post about 2 months ago and I admittedly have not found myself using Code Server for
|
|
||||||
anything other than this blog project. I have been using Copilot in VSCode more regularly in my day-to-day, and its
|
|
||||||
lack of support in Coder is probably a deal breaker for me. Even though I am unlikely to continue using Code Server,
|
|
||||||
I may check out Coder as a method for exposing a different IDE via web browser.
|
|
||||||
|
|
||||||
## Future Plans
|
|
||||||
As mentioned, I might check out Coder as a more complete reproducible workspace
|
|
||||||
in lieu of Code Server. Alternatively, I might just run VSCode in a VM as a simpler solution, though I would miss
|
|
||||||
having things like easy clipboard integration.
|
|
||||||
|
|
||||||
I have also started looking into [Neovim](https://neovim.io/) for code management and might work that into my setup.
|
|
||||||
I don't expect to get any kind of LLM code assistant functionality in `nvim`, but it would be an easy way to have a
|
|
||||||
single dev system that I can just connect to from whatever client I have available. I will probably dedicate my next
|
|
||||||
post here to documenting my `nvim` configuration (along with some updates to my
|
|
||||||
[previously-documented shell customizations](https://blog.mcknight.tech/2024/03/27/Shell-Customizations/)).
|
|
Loading…
Reference in a new issue