Download the latest binary from Release Page according to your operating system and architecture. Alternatively, docker container is also supported.
mkdir ./uploads
./share-Go -log nano -l 0.0.0.0:9000 -p ./uploads
mkdir -p ./share/uploads && sudo chown 65534:65534 ./share/uploads
# initialize chroot environment with alpine minirootfs
wget https://dl-cdn.alpinelinux.org/alpine/v3.18/releases/x86_64/alpine-minirootfs-3.18.4-x86_64.tar.gz
tar -xvf alpine-minirootfs-3.18.4-x86_64.tar.gz -C ./share && rm alpine-minirootfs-3.18.4-x86_64.tar.gz
echo 'nameserver 223.5.5.5' > ./share/etc/resolv.conf
# move share-Go binary into ./share and run
sudo chroot --userspec=65534:65534 ./share /share-Go -log text -l 0.0.0.0:9000 -p /uploads
example /etc/systemd/system/share-Go.service
:
[Unit]
Description=share-Go Service
After=network-online.target
[Service]
Type=simple
User=root
Restart=always
RestartSec=5s
ExecStart=/usr/bin/chroot --userspec=65534:65534 /root/share /share-Go -log text -l 0.0.0.0:9000 -p /uploads
[Install]
WantedBy=multi-user.target
mkdir ./uploads
docker run -d \
--name share-go \
-e CFG_LOGFMT=json \
-e CFG_LISTENADDR=:9000 \
-e CFG_ROOTPATH=/uploads \
-p 9000:9000 \
-v $(pwd)/uploads:/uploads \
ghcr.io/whoisnian/share-go:v0.0.6
- start backend service:
mkdir ./uploads go run ./main.go -log nano -d # manually rerun after modifying the golang code
- start frontend dev server:
cd fe npm install npm run start # live reloading for the javascript code
- visit http://127.0.0.1:9100 in your web browser.