diff --git a/2025-05-18_Code-Server.md b/2025-05-18_Code-Server.md deleted file mode 100644 index 1391516..0000000 --- a/2025-05-18_Code-Server.md +++ /dev/null @@ -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 ; - 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/)).