Document Code Server #11

Merged
d_mcknight merged 4 commits from DOC_CodeServer into main 2025-05-18 21:54:55 -07:00
Showing only changes of commit 9069ebe0d7 - Show all commits

View file

@ -1,5 +1,5 @@
--- ---
date: 2025-03-13 date: 2025-05-18
title: Code Server title: Code Server
tags: tags:
- homelab - homelab
@ -11,7 +11,7 @@ tags:
I recently started using [Forgejo](https://forgejo.org/) for managing my personal projects (including this blog content). 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 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 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. One thing I missed from GitLab (and GitHub) is the built-in web IDE for 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) 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 which provides a containerized VSCode PWA that I plan to use as an alternative to GitHub Codespaces and GitLab
workspaces. workspaces.
@ -72,7 +72,7 @@ server {
proxy_buffers 32 4k; proxy_buffers 32 4k;
proxy_max_temp_file_size 2048m; proxy_max_temp_file_size 2048m;
proxy_set_header X-Forwarded-Host code.mcknight.tech; proxy_set_header X-Forwarded-Host <coder domain name>;
proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Ssl on; proxy_set_header X-Forwarded-Ssl on;
proxy_pass http://coder:8080/; proxy_pass http://coder:8080/;
@ -80,14 +80,19 @@ server {
} }
``` ```
## Future Plans ## First Impressions
I still have some work to do before I decide whether or not Code Server can be my regular IDE, but so far it is a I wrote the bulk of this post about 2 months ago and I admittedly have not found myself using Code Server for
solid option for when I'm on my laptop doing things like writing this post. Compared to a VM, I appreciate being anything other than this blog project. I have been using Copilot in VSCode more regularly in my day-to-day, and its
able to just copy/paste from my local clipboard. I might check out Coder as a more complete reproducible workspace lack of support in Coder is probably a deal breaker for me. Even though I am unlikely to continue using Code Server,
in lieu of Code Server, or I might give in and go with VSCode in a VM so that I get Copilot integration. I may check out Coder as a method for exposing a different IDE via web browser.
On a related node, I did try Cursor at work and was impressed with the LLM integration which does seem to outdo ## Future Plans
what VSCode offers. I decided against adopting it for regular use since you do have to commit to a monthly As mentioned, I might check out Coder as a more complete reproducible workspace
subscription and I'm not a big fan of the UI changes they applied on top of VSCode. My hope is that eventually in lieu of Code Server. Alternatively, I might just run VSCode in a VM as a simpler solution, though I would miss
VSCode or some fork of it will enable local LLM integration, but then I would also want an open source LLM that having things like easy clipboard integration.
performs comparably to GPT-4o and Claude 3.7.
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/)).