Code-Server 搭建

Code-Server搭建

code-server-ui

如果有在平板上编辑代码的需求,可以试一试在服务器上搭建 Code-Server,完成后可在浏览器中编写代码。体验比商店里的大部分代码编辑器好很多。

下面使用 1panel 快捷搭建 Code-Server 服务,Auth2-Proxy 添加 Github 登录授权。

code-server 服务搭建

这里使用 1Panel 面板的应用市场搭建服务。1Panel安装教程在线安装 – 1Panel 文档

安装 code-server

code

code

配置反向代理

reverse_proxy_code

导入证书,

Certification

开启https:

https_path

https

完成后可通过域名访问服务器。

code-server

oauth2-proxy 搭建

这里我使用 Github 来授权代理。步骤如下:

  1. 创建一个 Github App。方法参考注册 GitHub 应用 – GitHub 文档
  2. Homepage URL :https://auth.yourdomain.com
  3. Callback URL: https://auth.yourdomain.com/oauth2/callback
  4. 开放用户权限。Permissions & events -> Account permissions ->Email addresses 设置为Read-Only

使用 docker-compose.yaml 文件来搭建 oauth2-proxy

version: '3.3'
services:
  oauth2-proxy:
   image: quay.io/oauth2-proxy/oauth2-proxy:latest
   container_name: oauth2-proxy
   restart: always
   volumes:
     - ./oauth2-proxy-data/:/data/ #change accordingly
   command:
     - --http-address
     - 0.0.0.0:4180
     - --cookie-domain
     - yourdomain.com #CHANGE HERE
     - --whitelist-domain=*.yourdomain.com #CHANGE HERE
     - --github-user="YOURGITHUBUSERNAME" #CHANGE HERE
   environment:
     - OAUTH2_PROXY_COOKIE_SECRET=GENERATEASECRETHERE #CHANGE HERE
     - OAUTH2_PROXY_CLIENT_ID=GITHUB_APPLICATION_CLIENT_ID #CHANGE HERE
     - OAUTH2_PROXY_CLIENT_SECRET=GITHUB_APPLICATION_CLIENT_SECRET #CHANGE HERE
     - OAUTH2_PROXY_PROVIDER=github
     - OAUTH2_PROXY_EMAIL_DOMAINS=*
     - OAUTH2_PROXY_GITHUB_USER="YOURGITHUBUSERNAME" #CHANGE HERE
     - OAUTH2_PROXY_REDIRECT_URL=https://login.yourdomain.com/oauth2/callback # should be same as the github application redirect url
     - OAUTH2_PROXY_HTTP_ADDRESS=0.0.0.0:4180
     - OAUTH2_PROXY_COOKIE_DOMAINS=yourdomain.com
     - OAUTH2_PROXY_SESSION_STORE_TYPE=cookie
     - OAUTH2_PROXY_COOKIE_SAMESITE=lax
     - OAUTH2_PROXY_REVERSE_PROXY=true
     - OAUTH2_PROXY_COOKIE_CSRF_PER_REQUEST=true
     - OAUTH2_PROXY_COOKIE_CSRF_EXPIRE=5m
     - OAUTH2_PROXY_SCOPE=user:email
     - OAUTH2_PROXY_SKIP_PROVIDER_BUTTON=false
     - OAUTH2_PROXY_PASS_USER_HEADERS=true
     - OAUTH2_PROXY_SET_XAUTHREQUEST=true
   ports:
     - 4180:4180
     - 8080:8080

参数说明;

  1. OAUTH2_PROXY_COOKIE_SECRET:使用下面指令生成。
    dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64 | tr -d -- '\n' | tr -- '+/' '-_' ; echo
    
  2. OAUTH2_PROXY_PROVIDER OAuth Provider,我则里使用的是github

  3. OAUTH2_PROXY_EMAIL_DOMAINS验证指定域名的邮箱,可以填写*来表示验证任何邮箱

  4. OAUTH2_PROXY_CLIENT_IDGithub App的 Client ID

  5. OAUTH2_PROXY_CLIENT_SECRET在Github App中创建的 Secret
  6. OAUTH2_PROXY_SCOPE Github App 允许授权服务器可修改的范围。这里只需要user:email
  7. OAUTH2_PROXY_REVERSE_PROXY 是否再反向代理后面。这里填ture
  8. OAUTH2_PROXY_GITHUB_USER 允许登录的的Github账户名
  9. --whitelist-domain 允许身份验证之后重定向的域名

根据自己的情况修改完成后使用下面指令启动 docker。

docker-compose up -d

为oauth2-proxy设置反向代理,创建方法同上。点击跳转

最后修改code-server的nginx配置文件,下面是网上的参考示例配置文件。使用oauth2-proxy给你的页面添加一个认证

server {
    listen       443 ssl http2;
    server_name  app.xxx.cn;
    ssl_certificate cert/cloudflare/cloudflare.pem;
    ssl_certificate_key cert/cloudflare/cloudflare.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;

    auth_request /internal-auth/oauth2/auth;
    error_page 401 = https://oauth.xxx.com/oauth2/sign_in?rd=scheme://hostrequest_uri;

    location /{
        proxy_http_version 1.1;
        proxy_set_header Upgradehttp_upgrade;
        proxy_set_header Connection connection_upgrade;
        proxy_pass http://127.0.0.1:8080;
        access_log logs/share.log main;
        client_max_body_size 1000m;
    }
    location /internal-auth/ {
      internal; # Ensure external users can't access this path
      proxy_set_header Hosthost;
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_pass http://127.0.0.1:4180/;
    }
}

完成后,输入 code-server 域名。进入授权登录界面。根据自己需要自行修改。如果和我一样使用使用 1panel搭建的话。只需要复制下面部分,修改。

auth_request /internal-auth/oauth2/auth;
error_page 401 = https://oauth.xxx.com/oauth2/sign_in?rd=scheme://hostrequest_uri; # CHANGE HERE

location /internal-auth/ {
    internal; # Ensure external users can't access this path
    proxy_set_header Hosthost;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_pass http://127.0.0.1:4180/;
}

首先请求 /internal-auth/路径,如果 HTTP-401错误。则跳转到 oauth2_proxy进行认证,完成后再重定向回应用。

正常第一次访问会进入如下界面。

oauth2-prox

修改 error_page 401 重定向的 url 如下:

error_page 401 = https://oauth.xxx.com/oauth2/start?rd=scheme://host$request_uri; 

第一次访问会直接进入 Github 登录界面。

github

完成 github 账户授权后,再回到code-server登录界面。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇