generated from Templates/Baseline
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
903478f746 | |||
7a1b293188 | |||
88d228ad07 | |||
40684f5a3b | |||
6931ca6baf | |||
5d7020551c | |||
ce11f07e47 | |||
3b35775797 | |||
c53e04272e | |||
73b9e9e710 | |||
518f9c4946 | |||
83ee3808be | |||
4faf6d8b3e | |||
8239ec48b4 |
17
.vscode/dictionaries/project-words.txt
vendored
17
.vscode/dictionaries/project-words.txt
vendored
@ -1,7 +1,24 @@
|
||||
Akranum
|
||||
appdata
|
||||
arkanum
|
||||
aurocrlf
|
||||
certresolver
|
||||
codesetting
|
||||
dotnet
|
||||
Fira
|
||||
FOSS
|
||||
gitea
|
||||
loadbalancer
|
||||
LTS
|
||||
mydomain
|
||||
myresolver
|
||||
ocram
|
||||
OSS
|
||||
PGID
|
||||
PUID
|
||||
Quickstart
|
||||
runtimes
|
||||
srv
|
||||
tbd
|
||||
traefik
|
||||
tuanpham
|
||||
|
@ -14,7 +14,8 @@ pipeline:
|
||||
password:
|
||||
from_secret: gitea_passwd
|
||||
build_args:
|
||||
- VERSION="Tag ${CI_COMMIT_TAG} - Branch ${CI_COMMIT_SOURCE_BRANCH} - PR ${CI_COMMIT_PULL_REQUEST}"
|
||||
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
||||
- TAG=${CI_COMMIT_TAG}
|
||||
when:
|
||||
event: push
|
||||
branch: master
|
||||
@ -31,6 +32,18 @@ pipeline:
|
||||
password:
|
||||
from_secret: gitea_passwd
|
||||
build_args:
|
||||
- VERSION="Tag ${CI_COMMIT_TAG} - Branch ${CI_COMMIT_SOURCE_BRANCH} - PR ${CI_COMMIT_PULL_REQUEST}"
|
||||
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
||||
- TAG=${CI_COMMIT_TAG}
|
||||
when:
|
||||
event: tag
|
||||
|
||||
GiteaRelease:
|
||||
image: plugins/gitea-release
|
||||
settings:
|
||||
api_key:
|
||||
from_secret: RENOVATE_TOKEN
|
||||
base_url: https://gitea.ocram85.com
|
||||
title: ${CI_COMMIT_TAG}
|
||||
note: "> :bulb: **Note:** See [CHANGELOG.md](src/branch/master/CHANGELOG.md) for recent changes."
|
||||
when:
|
||||
event: tag
|
||||
|
@ -16,7 +16,8 @@ pipeline:
|
||||
password:
|
||||
from_secret: gitea_passwd
|
||||
build_args:
|
||||
- VERSION="Tag ${CI_COMMIT_TAG} - Branch ${CI_COMMIT_SOURCE_BRANCH} - PR ${CI_COMMIT_PULL_REQUEST}"
|
||||
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
||||
- TAG=${CI_COMMIT_TAG}
|
||||
when:
|
||||
event: pull_request
|
||||
|
||||
@ -28,4 +29,4 @@ pipeline:
|
||||
TOKEN:
|
||||
from_secret: NEXT_TOKEN
|
||||
when:
|
||||
event: pull_request
|
||||
event: pull_request
|
||||
|
@ -1,6 +1,6 @@
|
||||
pipeline:
|
||||
DockerBaseImage:
|
||||
image: renovate/renovate:34.22-slim
|
||||
image: renovate/renovate:34.82-slim
|
||||
commands:
|
||||
- "renovate"
|
||||
secrets:
|
||||
@ -10,9 +10,10 @@ pipeline:
|
||||
RENOVATE_PLATFORM: "gitea"
|
||||
RENOVATE_ENDPOINT: "https://gitea.ocram85.com"
|
||||
RENOVATE_REPOSITORIES: "${CI_REPO}"
|
||||
RENOVATE_LABELS: "pr/renovate"
|
||||
RENOVATE_LABELS: "renovate"
|
||||
#RENOVATE_DRY_RUN: "full"
|
||||
RENOVATE_TOKEN: "${RENOVATE_TOKEN}"
|
||||
RENOVATE_GITHUB_TOKEN_WARN: "false"
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
|
@ -7,3 +7,6 @@ pipeline:
|
||||
repo: gitea.ocram85.com/codeserver/arkanum
|
||||
dockerfile: Dockerfile
|
||||
tags: next
|
||||
build_args:
|
||||
- VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
||||
- TAG=${CI_COMMIT_TAG}
|
||||
|
27
CHANGELOG.md
27
CHANGELOG.md
@ -1,3 +1,10 @@
|
||||
## [v0.1.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.0) - 2022-11-25
|
||||
|
||||
* 📦 BUILD
|
||||
* sync pipeline build args (#28)
|
||||
* 📚 DOCS
|
||||
* adds Readme content to prepare Github mirror (#26)
|
||||
|
||||
## [v0.0.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.0.1) - 2022-11-22
|
||||
|
||||
* 🐛 BUGFIXES
|
||||
@ -28,3 +35,23 @@
|
||||
* Add woodpecker manager in renovate-bot (#14)
|
||||
* fixes logo file path (#8)
|
||||
* Adds basic container setup with pipeline (#1)
|
||||
|
||||
## [v0.1.1](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.1.1) - 2023-01-02
|
||||
|
||||
* 📦 BUILD
|
||||
* fix woodpecker fileMatch regex (#30)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update renovate/renovate Docker tag to v34.77 (#35)
|
||||
* fix renovate config keys (#34)
|
||||
* Update renovate/renovate Docker tag to v34.62 (#33)
|
||||
* Update renovate/renovate Docker tag to v34.57 (#32)
|
||||
|
||||
## [v0.2.0](https://gitea.ocram85.com/CodeServer/arkanum/releases/tag/v0.2.0) - 2023-01-04
|
||||
|
||||
* 🐛 BUGFIXES
|
||||
* fix typo (#39)
|
||||
* 🛠️ ENHANCEMENTS
|
||||
* Add proxy support (#38)
|
||||
* 🤖 DEPENDENCIES
|
||||
* Update renovate/renovate Docker tag to v34.82 (#37)
|
||||
* Update quay.io/linuxserver.io/code-server Docker tag to v4.9.1 (#31)
|
||||
|
@ -1,15 +1,17 @@
|
||||
FROM quay.io/linuxserver.io/code-server:4.8.3
|
||||
FROM quay.io/linuxserver.io/code-server:4.9.1
|
||||
|
||||
#LABEL build_version=""
|
||||
LABEL maintainer="OCram85"
|
||||
ARG VERSION
|
||||
LABEL build_version="$VERSION"
|
||||
LABEL build_version="${VERSION}"
|
||||
LABEL org.opencontainers.image.authors="OCram85"
|
||||
LABEL org.opencontainers.image.vendor="OCram85"
|
||||
|
||||
LABEL org.opencontainers.image.title="Arkanum"
|
||||
LABEL org.opencontainers.image.description="Code-Server container optimized for daily use."
|
||||
LABEL org.opencontainers.image.licenses="AGPL-3.0"
|
||||
ARG TAG
|
||||
LABEL org.opencontainers.image.version="${TAG}"
|
||||
|
||||
LABEL org.opencontainers.image.url="https://gitea.ocram85.com/CodeServer/arkanum"
|
||||
LABEL org.opencontainers.image.source="https://gitea.ocram85.com/CodeServer/arkanum.git"
|
||||
|
187
README.md
187
README.md
@ -6,7 +6,7 @@
|
||||
<p align="center">
|
||||
<a href="https://gitea.ocram85.com/CodeServer/arkanum/">
|
||||
<img
|
||||
src="/CodeServer/arkanum/raw/branch/master/assets/social-logo.png"
|
||||
src="assets/social-logo.png"
|
||||
alt="Container"
|
||||
>
|
||||
</a>
|
||||
@ -17,37 +17,155 @@
|
||||
</h1>
|
||||
|
||||
<p align="center">
|
||||
Code-Server container optimized for daily use. ❤
|
||||
... is a Code-Server container optimized for daily use.
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://ci.ocram85.com/CodeServer/arkanumg">
|
||||
<a href="https://ci.ocram85.com/CodeServer/arkanum">
|
||||
<img src="https://ci.ocram85.com/api/badges/CodeServer/arkanum/status.svg" alt="Master Branch Build Status">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
## :book: General
|
||||
## 🤖 Quickstart
|
||||
|
||||
The container is based on the latest `linuxserver/code-server` image.
|
||||
### 1. ⚡ Get the image 📦
|
||||
|
||||
You can download the image from the gitea embedded container registry: `gitea.ocram85.com/codeserver/arkanum` 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](https://gitea.ocram85.com/CodeServer/-/packages/container/arkanum/latest) 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**.
|
||||
|
||||
```yaml
|
||||
version: "3.8"
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.2.0
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Berlin
|
||||
- PASSWORD=foo #optional
|
||||
#- HASHED_PASSWORD= #optional
|
||||
- SUDO_PASSWORD=foobar #optional
|
||||
#- SUDO_PASSWORD_HASH= #optional
|
||||
#- PROXY_DOMAIN=code-server.my.domain #optional
|
||||
- DEFAULT_WORKSPACE=/config/workspace
|
||||
deploy:
|
||||
replicas: 1
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-public"
|
||||
- "traefik.http.routers.arkanum.rule=Host(`vscode.mydomain.com`)"
|
||||
- "traefik.http.routers.arkanum.tls.certresolver=myresolver"
|
||||
- "traefik.http.services.arkanum-srv.loadbalancer.server.port=8443"
|
||||
volumes:
|
||||
# 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.
|
||||
#ports:
|
||||
# - 8443:8443
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- arkanum-sphere
|
||||
- traefik-public
|
||||
|
||||
volumes:
|
||||
codedata:
|
||||
|
||||
networks:
|
||||
arkanum-sphere:
|
||||
traefik-public:
|
||||
external: true
|
||||
```
|
||||
|
||||
> 💡 NOTE: For advanced config with additional environment variables see [linuxserver/docker-code-server](https://github.com/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](https://github.com/linuxserver/docker-code-server) project.
|
||||
|
||||
See their [docs](https://github.com/linuxserver/docker-code-server#parameters) about a detailed help for advanced config parameters.
|
||||
|
||||
```yaml
|
||||
---
|
||||
version: "3.8"
|
||||
services:
|
||||
arkanum:
|
||||
image: gitea.ocram85.com/codeserver/arkanum:0.2.0
|
||||
container_name: code-server
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/London
|
||||
- PASSWORD=password #optional
|
||||
- HASHED_PASSWORD= #optional
|
||||
- SUDO_PASSWORD=password #optional
|
||||
- SUDO_PASSWORD_HASH= #optional
|
||||
- PROXY_DOMAIN=code-server.my.domain #optional
|
||||
- DEFAULT_WORKSPACE=/config/workspace #optional
|
||||
volumes:
|
||||
- /path/to/appdata/config:/config
|
||||
ports:
|
||||
- 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:
|
||||
|
||||
```bash
|
||||
git config --global user.name "username"
|
||||
git config --global user.email "email address"
|
||||
```
|
||||
|
||||
And that's it. Now you're ready use arkanum as your daily remote code editor. 😄
|
||||
|
||||
## 📖 Content
|
||||
|
||||
<p align="center">
|
||||
<a href="https://gitea.ocram85.com/CodeServer/arkanum/">
|
||||
<img
|
||||
src="assets/screen1.png"
|
||||
alt="Screenshot1"
|
||||
>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
### 🚀 Starship prompt
|
||||
|
||||
The [Starship](starship.rs) prompt is added and enabled as default. Default config uses Emojis and FiraCode icons.
|
||||
We added the [Starship](starship.rs) prompt is as default in the integrated terminal. The default config uses Emojis and FiraCode icons.
|
||||
|
||||
### 🔱 git config
|
||||
|
||||
Adds default git system config file with:
|
||||
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](./gitconfig-system) for details.
|
||||
|
||||
### 🧙 Added `arkanum` helper script
|
||||
### 🧙 `arkanum` helper
|
||||
|
||||
Added `arkanum` to help installing common runtime in container.
|
||||
Added `arkanum` to help installing common runtimes in container.
|
||||
This helps reducing the image size.
|
||||
|
||||
```
|
||||
@ -74,7 +192,7 @@ This helps reducing the image size.
|
||||
|
||||
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
|
||||
### 🦸 VSCode default settings
|
||||
|
||||
If your start the container or log in the first time, a default config file is deployed.
|
||||
|
||||
@ -83,13 +201,13 @@ 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.
|
||||
- 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 starshop prompt.
|
||||
- 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
|
||||
- Disables VSCode telemetry
|
||||
- Disable confirm message for sync branches.
|
||||
|
||||
Additionally we install these extensions on container startup:
|
||||
@ -98,9 +216,46 @@ Additionally we install these extensions on container startup:
|
||||
- [vscode-icons](https://open-vsx.org/extension/vscode-icons-team/vscode-icons) icon set
|
||||
- [Gitlens](https://open-vsx.org/extension/eamodio/gitlens)
|
||||
|
||||
## 💳 Credits
|
||||
## 💣 Known Issues
|
||||
|
||||
Akranum is based on the following projects and wouldn't be possible without:
|
||||
### 🐛 Default extensions installation timing error
|
||||
|
||||
If the automatic installation of the default extension fails, you can always retry he installation with the
|
||||
following command:
|
||||
|
||||
```bash
|
||||
# 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 ](https://gitea.ocram85.com/CodeServer/arkanum/issues) 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](https://GiveUpGitHub.org) campaign from
|
||||
[the Software Freedom Conservancy](https://sfconservancy.org) 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](https://gitea.ocram85.com/CodeServer/arkanum) 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.
|
||||
|
||||

|
||||
|
||||
## 🙏 Credits
|
||||
|
||||
Akranum is based on the following projects and wouldn't be possible without them:
|
||||
|
||||
- [microsoft/vscode](https://github.com/microsoft/vscode) - Visual Studio Code, OSS. `[MIT]`
|
||||
- [coder/code-server](https://github.com/coder/code-server) - VSCode on a remote server, accessible through the browser. `[MIT]`
|
||||
@ -113,7 +268,7 @@ Akranum is based on the following projects and wouldn't be possible without:
|
||||
|
||||
```
|
||||
Arkanum - Code-Server container optimized for daily use.
|
||||
Copyright (C) 2022 "OCram85 <me@ocram85.com>"
|
||||
Copyright (C) 2022 "OCram85 <me@ocram85.com>"
|
||||
|
||||
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
|
||||
|
20
arkanum
20
arkanum
@ -50,8 +50,8 @@ function sayE() {
|
||||
|
||||
function instDotNet() {
|
||||
say "Installing dotnet requirements..." "dotnet"
|
||||
sudo apt-get update > /dev/null
|
||||
sudo apt-get install --no-install-recommends -y \
|
||||
sudo -E apt-get update > /dev/null
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
libicu70
|
||||
|
||||
say "Downloading latest install script..." "dotnet"
|
||||
@ -63,7 +63,7 @@ function instDotNet() {
|
||||
echo 'export PATH=$PATH:/config/.dotnet' | sudo tee -a /etc/bash.bashrc > /dev/null
|
||||
|
||||
say "Cleaning up..." "dotnet"
|
||||
sudo apt-get clean
|
||||
sudo -E apt-get clean
|
||||
sudo rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
@ -94,11 +94,11 @@ function instNodeJs() {
|
||||
say "Adding nodesource package source (NodeJS LTS)..." "NodeJs"
|
||||
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
|
||||
say "Updating package lists and installing NodeJS LTS..." "NodeJs"
|
||||
sudo apt-get install --no-install-recommends -y \
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
nodejs
|
||||
|
||||
say "Cleaning up..." "NodeJs"
|
||||
sudo apt-get clean
|
||||
sudo -E apt-get clean
|
||||
sudo rm -rf \
|
||||
/tmp/* \
|
||||
/var/lib/apt/lists/* \
|
||||
@ -109,7 +109,7 @@ function instNodeJs() {
|
||||
|
||||
function instPwsh() {
|
||||
say "Installing PowerShell requirements..." "PowerShell"
|
||||
sudo apt-get install --no-install-recommends -y \
|
||||
sudo -E apt-get install --no-install-recommends -y \
|
||||
apt-transport-https \
|
||||
software-properties-common
|
||||
|
||||
@ -119,18 +119,18 @@ function instPwsh() {
|
||||
# Register the Microsoft repository GPG keys
|
||||
sudo dpkg -i /tmp/packages-microsoft-prod.deb
|
||||
# Update the list of packages after we added packages.microsoft.com
|
||||
sudo apt-get update
|
||||
sudo -E apt-get update
|
||||
|
||||
say "Installing PowerShell..." "PowerShell"
|
||||
# Install PowerShell
|
||||
sudo apt-get install --no-install-recommends -y powershell
|
||||
sudo -E apt-get install --no-install-recommends -y powershell
|
||||
|
||||
say "done." "PowerShell"
|
||||
}
|
||||
|
||||
function instGiteaTools() {
|
||||
say "Installing Gitea tools..." "Gitea"
|
||||
sudo curl -fsSL https://dl.gitea.io/changelog-tool/main/changelog-main-linux-amd64 -o /usr/bin/changelog
|
||||
sudo -E curl -fsSL https://dl.gitea.io/changelog-tool/main/changelog-main-linux-amd64 -o /usr/bin/changelog
|
||||
sudo chmod +x /usr/bin/changelog
|
||||
say "'changelog' command installed." "Gitea"
|
||||
say "done." "Gitea"
|
||||
@ -147,7 +147,7 @@ function instCodeExtension() {
|
||||
rm -f /tmp/eamodio.gitlens-13.1.1.vsix
|
||||
|
||||
# OneDarkPro
|
||||
say "Downloading 'One Dark Pro' theme..." "V"
|
||||
say "Downloading 'One Dark Pro' theme..." "Extension"
|
||||
curl -fsSL https://open-vsx.org/api/zhuangtongfa/material-theme/3.15.6/file/zhuangtongfa.material-theme-3.15.6.vsix -o /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
||||
say "Installing 'One Dark Pro' theme..." "Extension"
|
||||
install-extension /tmp/zhuangtongfa.material-theme-3.15.6.vsix
|
||||
|
BIN
assets/screen1.png
Normal file
BIN
assets/screen1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 304 KiB |
@ -6,7 +6,7 @@
|
||||
"woodpecker": {
|
||||
"enabled": true,
|
||||
"fileMatch": [
|
||||
"^.woodpecker/*.yml$"
|
||||
"^.woodpecker\/.*.yml$"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user