Last active
June 19, 2022 07:18
-
-
Save arvati/b5170a6c6048b0ea55e77f52cde2b396 to your computer and use it in GitHub Desktop.
Install cdr/code-server on alpine (and debian) lxc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/sbin/openrc-run | |
name=$RC_SVCNAME | |
description="$name - VS Code on a remote server" | |
password="secret" | |
homedir="/root" | |
command="env PASSWORD=$password /usr/local/bin/$name" | |
server="0.0.0.0" | |
port="443" | |
command_args="--extensions-dir $homedir/.local/share/$name/extensions --host $server --user-data-dir $homedir/.local/share/$name --port $port --disable-telemetry --cert=$homedir/certs/$name.crt --cert-key=$homedir/certs/$name.key /srv" | |
command_user="root:root" | |
pidfile="/run/$name/$name.pid" | |
command_background="yes" | |
extra_commands="report" | |
depend() { | |
use logger dns | |
need net | |
} | |
start_pre() { | |
checkpath --directory --owner $command_user --mode 0775 \ | |
/run/$name /var/log/$name | |
} | |
start() | |
{ | |
default_start | |
report | |
} | |
stop() | |
{ | |
default_stop | |
} | |
status() | |
{ | |
default_status | |
report | |
} | |
report() { | |
# Report to the user | |
einfo "You can login at: https://$server:$port/" | |
einfo "Using password: $password" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
### BEGIN INIT INFO | |
# Provides: code-server | |
# Required-Start: $local_fs $network $named $time $syslog | |
# Required-Stop: $local_fs $network $named $time $syslog | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Description: code-server - VS Code on a remote server | |
### END INIT INFO | |
dir="/root" | |
password="secret" | |
user="root" | |
server="0.0.0.0" | |
port="443" | |
name=`basename $0` | |
pid_file="/var/run/$name.pid" | |
stdout_log="/var/log/$name.log" | |
stderr_log="/var/log/$name.err" | |
cmd="env PASSWORD=$password /usr/local/bin/$name --extensions-dir $dir/.local/share/$name/extensions --host $server --user-data-dir $dir/.local/share/$name --port $port --disable-telemetry --cert=$dir/certs/$name.crt --cert-key=$dir/certs/$name.key /srv" | |
#env PASSWORD=secret /usr/local/bin/code-server --extensions-dir /root/.local/share/code-server/extensions --host 0.0.0.0 --user-data-dir /root/.local/share/code-server --port 443 --disable-telemetry --cert=/root/certs/code-server.crt --cert-key=/root/certs/code-server.key /srv | |
get_pid() { | |
cat "$pid_file" | |
} | |
is_running() { | |
[ -f "$pid_file" ] && ps -p `get_pid` > /dev/null 2>&1 | |
} | |
report() { | |
# Report to the user | |
echo "You can login at: https://$server:$port/" | |
echo "Using password: $password" | |
} | |
case "$1" in | |
start) | |
if is_running; then | |
echo "Already started" | |
else | |
echo "Starting $name" | |
cd "$dir" | |
if [ -z "$user" ]; then | |
sudo $cmd >> "$stdout_log" 2>> "$stderr_log" & | |
else | |
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" & | |
fi | |
echo $! > "$pid_file" | |
if ! is_running; then | |
echo "Unable to start, see $stdout_log and $stderr_log" | |
exit 1 | |
fi | |
report | |
fi | |
;; | |
stop) | |
if is_running; then | |
echo -n "Stopping $name.." | |
kill `get_pid` | |
for i in 1 2 3 4 5 6 7 8 9 10 | |
# for i in `seq 10` | |
do | |
if ! is_running; then | |
break | |
fi | |
echo -n "." | |
sleep 1 | |
done | |
echo | |
if is_running; then | |
echo "Not stopped; may still be shutting down or shutdown may have failed" | |
exit 1 | |
else | |
echo "Stopped" | |
if [ -f "$pid_file" ]; then | |
rm "$pid_file" | |
fi | |
fi | |
else | |
echo "Not running" | |
fi | |
;; | |
restart) | |
$0 stop | |
if is_running; then | |
echo "Unable to stop, will not attempt to start" | |
exit 1 | |
fi | |
$0 start | |
;; | |
status) | |
if is_running; then | |
echo "Running" | |
report | |
else | |
echo "Stopped" | |
exit 1 | |
fi | |
;; | |
*) | |
echo "Usage: $0 {start|stop|restart|status}" | |
exit 1 | |
;; | |
esac | |
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cd /root/ | |
service code-server stop | |
wget https://github.com/cdr/code-server/releases/download/2.1698/code-server2.1698-vsc1.41.1-alpine-x86_64.tar.gz | |
tar -xvzf code-server2.1698-vsc1.41.1-alpine-x86_64.tar.gz | |
mv /root/code-server2.1698-vsc1.41.1-alpine-x86_64 /opt/code-server2.1698-vsc1.41.1-alpine-x86_64 | |
cd / | |
rm /usr/local/bin/code-server | |
chmod +x /opt/code-server2.1698-vsc1.41.1-alpine-x86_64/code-server | |
ln -s ../../../opt/code-server2.1698-vsc1.41.1-alpine-x86_64/code-server /usr/local/bin/code-server | |
service code-server start | |
# if this does not work need to compile from source | |
service code-server stop | |
rm /usr/local/bin/code-server | |
rm -fr /opt/code-server2.1698-vsc1.41.1-alpine-x86_64 | |
cd /root/ | |
#wget https://github.com/cdr/code-server/archive/1.1140-vsc1.33.1.zip | |
wget https://github.com/cdr/code-server/archive/3.1.0.zip | |
#unzip 1.1140-vsc1.33.1.zip | |
unzip 3.1.0.zip | |
#mv /root/code-server-1.1140-vsc1.33.1 /opt/code-server-1.1140-vsc1.33.1 | |
mv /root/code-server-3.1.0 /opt/code-server-3.1.0 | |
#cd /opt/code-server-1.1140-vsc1.33.1 | |
cd /opt/code-server-3.1.0 | |
yarn | |
npm_config_build_from_source=true NODE_ENV=production npm_config_unsafe_perm=true yarn task build:server:binary --force | |
#ln -s ../../../opt/code-server-1.1140-vsc1.33.1/packages/server/cli-musl-x64 /usr/local/bin/code-server | |
ln -s ../../../opt/code-server-1.1140-vsc1.33.1/packages/server/cli-musl-x64 /usr/local/bin/code-server | |
service code-server start | |
# to run manuaaly | |
code-server -H -N --disable-telemetry | |
# make certificate | |
mkdir ~/certs | |
cd ~/certs | |
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout code-server.key -out code-server.crt -subj /CN=example.com -addext subjectAltName=DNS:example.com,DNS:example.net,IP:192.168.1.75 | |
# check out my start script - change the password | |
nano /etc/init.d/code-server | |
chmod +x /etc/init.d/code-server |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
service code-server stop | |
cd /root/ | |
wget https://github.com/cdr/code-server/releases/download/2.1698/code-server2.1698-vsc1.41.1-linux-x86_64.tar.gz | |
#wget https://github.com/cdr/code-server/releases/download/3.1.0/code-server-3.1.0-linux-x86_64.tar.gz | |
tar -xvzf code-server2.1698-vsc1.41.1-linux-x86_64.tar.gz | |
#tar -xvzf code-server-3.1.0-linux-x86_64.tar.gz | |
mv /root/code-server2.1698-vsc1.41.1-linux-x86_64 /opt/code-server2.1698-vsc1.41.1-linux-x86_64 | |
#mv /root/code-server-3.1.0-linux-x86_64 /opt/code-server-3.1.0-linux-x86_64 | |
cd / | |
chmod +x /opt/code-server2.1698-vsc1.41.1-linux-x86_64/code-server | |
#chmod +x /opt/code-server-3.1.0-linux-x86_64/code-server | |
rm /usr/local/bin/code-server | |
ln -s ../../../opt/code-server2.1698-vsc1.41.1-linux-x86_64/code-server /usr/local/bin/code-server | |
#ln -s ../../../opt/code-server-3.1.0-linux-x86_64/code-server /usr/local/bin/code-server | |
service code-server start | |
# make certificate | |
mkdir ~/certs | |
cd ~/certs | |
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout code-server.key -out code-server.crt -subj /CN=example.com -addext subjectAltName=DNS:example.com,DNS:example.net,IP:192.168.1.75 | |
# check out my start script - change the password | |
nano /etc/init.d/code-server | |
chmod +x /etc/init.d/code-server | |
update-rc.d code-server defaults |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I don't know how can I use this code in order to get code-server running on an Alpine container.
Could you please give me an instruction?
Thank you