Arkanum - Code-Server container optimized for daily use.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
renovate-bot 6d2e8fb05f
ci/woodpecker/push/test Pipeline was successful Details
ci/woodpecker/push/next Pipeline was successful Details
ci/woodpecker/push/deploy Pipeline was successful Details
Update Docker tag to v4.10.0 (#43)
4 weeks ago
.gitea fix PR template wording (#15) 4 months ago
.vscode adds Readme content to prepare Github mirror (#26) 4 months ago
.woodpecker remove repo defined renovate (#44) 1 month ago
FiraCode adds FiraCode NerdFont (#9) 5 months ago
assets adds Readme content to prepare Github mirror (#26) 4 months ago
.changelog.yml Adds gitea changelog config (#19) 4 months ago
.dockerignore add basic container setup 5 months ago
.editorconfig Initial commit 6 months ago
.gitattributes adds FiraCode NerdFont (#9) 5 months ago
.gitignore Initial commit 6 months ago
.gitlocal Initial commit 6 months ago Prepare release 0.2.0 (#40) 3 months ago
Dockerfile Update Docker tag to v4.10.0 (#43) 4 weeks ago
LICENSE adds AGPLv3 license (#20) 4 months ago Prepare release 0.2.0 (#40) 3 months ago
arkanum add tea cli in gitea block (#41) 1 month ago
arkanum-completion Splits extension install into seperate function (#23) 4 months ago
gitconfig-system add system gitconfig (#4) 5 months ago
renovate.json fix renovate config keys (#34) 3 months ago
starship.toml add basic container setup 5 months ago


🧙 Arkanum 🌌 ☄️ 💥

... is a Code-Server container optimized for daily use.

Master Branch Build Status

🤖 Quickstart

1. Get the image 📦

You can download the image from the gitea embedded container registry: with these tags:

  • latest - Is based on the lasted master branch commit.
  • next - Is a test build based on the pull request
  • 1, 0.1, 0.1.0 - tag based version.

💡 NOTE: See the packages page for latest version and all other available tags.

2.a Run as Docker Swarm Stack

This example shows how to run arkanum as an additional swarm stack.

Therefore you need

  • an already running docker swarm cluster,
  • a running traefik instance handling the http and https routes,
  • configured to expose services in the a ingress overlay network called traefik-public.

Warning: Make sure to secure the access to arkanum with proper authentication method and use a trusted + secure https connection.

version: "3.8"
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - PASSWORD=foo #optional
      #- HASHED_PASSWORD= #optional
      - SUDO_PASSWORD=foobar #optional
      #- SUDO_PASSWORD_HASH= #optional
      #- #optional
      - DEFAULT_WORKSPACE=/config/workspace
      replicas: 1
       - "traefik.enable=true"
       - ""
       - "traefik.http.routers.arkanum.rule=Host(``)"
       - "traefik.http.routers.arkanum.tls.certresolver=myresolver"
       - ""
      # store workspace and use config in volume.
      - codedata:/config
    # no need to expose the port. traefik acts as reverse proxy and handles the https access.
    #  - 8443:8443
    restart: unless-stopped
      - arkanum-sphere
      - traefik-public


    external: true

💡 NOTE: For advanced config with additional environment variables see linuxserver/docker-code-server help.

2.b Use Docker-Compose

This is a basic example for a docker-compose file from the linuxserver/docker-code-server project.

See their docs about a detailed help for advanced config parameters.

version: "3.8"
    container_name: code-server
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - PASSWORD=password #optional
      - HASHED_PASSWORD= #optional
      - SUDO_PASSWORD=password #optional
      - SUDO_PASSWORD_HASH= #optional
      - #optional
      - DEFAULT_WORKSPACE=/config/workspace #optional
      - /path/to/appdata/config:/config
      - 8443:8443
    restart: unless-stopped

3. 🦶 First Steps

After summon Arkanum your first steps should be to set your username and email in the git config:

git config --global "username"
git config --global "email address"

And that's it. Now you're ready use arkanum as your daily remote code editor. 😄

📖 Content


🚀 Starship prompt

We added the Starship prompt is as default in the integrated terminal. The default config uses Emojis and FiraCode icons.

🔱 git config

Added default git system config file with:

  • code-server as default editor.
  • disabled aurocrlf.
  • enabled plain credential store for remote.
  • added git log helper lg1 + lg2.
  • enabled bash completion for git command in integrated bash terminal.

💡 See gitconfig-system for details.

🧙 arkanum helper

Added arkanum to help installing common runtimes in container. This helps reducing the image size.

🧙 arkanum ✨🌌☄️💥 is used to install optional runtimes for developing in a
  code-server container environment.

  Syntax: arkanum RUNTIME ...
  RUNTIME         [dotnet|golang|nodejs|powershell]
    dotnet        Installs latest LTS dotnet core sdk + runtime.
    gitea         Installs gitea tools like the changelog generator.
    golang        Installs golang 1.19.3.
    nodejs        Installs latest NodeJs LTS version.
    powershell    Installs latest PowerShell LTS version.
  --disable-motd         Disables hint in new bash terminal.
  --install-extensions   Installs predefined recommended extensions.
  --reset-codesetting    Sets VS Code user setting with basic (Fira Code).
  -h                     Prints this help message.

  Example 1: arkanum dotnet
  Example 2: arkanum golang nodejs
  Example 3: arkanum --disable-motd

📝 Fira Code (NerdFont patched)

Added FiraCode as default font in editor and integrated terminal. The font files are embedded and can be used without local installation.

🦸 VSCode default settings

If your start the container or log in the first time, a default config file is deployed.

This user setting defines the following stuff:

  • Use compact menu bar to avoid users with multiple menu bars.
  • Use One Dark Pro Darker theme
  • Use vscode-icons icon set
  • Set FiraCode as default font in editor.
    • Tries to use alternate font names for FiraCode if its locally available.
  • Sets FiraCode mono variant in terminal to enable icons used by starship prompt.
  • Enables font ligatures
  • Enables auto save and format on save.
  • Disables auto update for extension.
  • Disables VSCode telemetry
  • Disable confirm message for sync branches.

Additionally we install these extensions on container startup:

💣 Known Issues

🐛 Default extensions installation timing error

If the automatic installation of the default extension fails, you can always retry he installation with the following command:

# restart the installation
arkanum --install-extensions
# Optional: reset the vscode user setting
arkanum --reset-codesetting
# Reload with command F1 + Developer: Reload Window

😡 We're Using GitHub Under Protest

This project is currently mirrored to GitHub. This is not ideal; GitHub is a proprietary, trade-secret system that is not Free and Open Source Software (FOSS). We are deeply concerned about using a proprietary system like GitHub to develop our FOSS project. We have an open Gitea repository where the project contributors are actively discussing how we can move away from GitHub in the long term. We urge you to read about the Give up GitHub campaign from the Software Freedom Conservancy to understand some of the reasons why GitHub is not a good place to host FOSS projects.

If you are a contributor who personally has already quit using GitHub, please check this resource for how to send us contributions without using GitHub directly.

Any use of this project's code by GitHub Copilot, past or present, is done without our permission. We do not consent to GitHub's use of this project's code in Copilot.

Logo of the GiveUpGitHub campaign

🙏 Credits

Akranum is based on the following projects and wouldn't be possible without them:

⚖️ License (AGPLv3)


Arkanum - Code-Server container optimized for daily use.
Copyright (C) 2022 "OCram85 <>"

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <>.