This repository has been archived by the owner on Jul 29, 2024. It is now read-only.
generated from Start9Labs/hello-world-startos
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* wip * feat: add labelbase icon * chore: minor cleanup * feat: devcontainer * fix: start the f*** (as in friendly) database * fix: devcontainer * chore: Update devcontainer configuration * ci: Add GitHub Actions workflows for building and releasing service packages * WIP: I think this will work * chore: Update Dockerfile to use mysql-devel instead of mariadb105-devel * I give up * fuck --------- Co-authored-by: jaonoctus <jaonoctus@protonmail.com>
- Loading branch information
Showing
17 changed files
with
365 additions
and
97 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/sh | ||
|
||
# set error | ||
set -e | ||
|
||
# Move to a tempdir | ||
cd "$(mktemp -d)" | ||
|
||
# Hardcoded to deno 1.42.4 | ||
curl -LO https://github.com/denoland/deno/releases/download/v1.42.4/deno-x86_64-unknown-linux-gnu.zip | ||
|
||
# Check the checksum | ||
echo "8f769ded5ec44511ee8410c6389174e79c9d142cb4e47385d7358b552c63bdb9 deno-x86_64-unknown-linux-gnu.zip" | sha256sum -c - | ||
|
||
# unzip | ||
unzip deno-x86_64-unknown-linux-gnu.zip | ||
sudo mv deno /usr/bin/deno | ||
|
||
# remove everything | ||
rm -rf -- * | ||
|
||
# test command | ||
deno --version |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
{ | ||
"name": "Start9 App Builder", | ||
"image": "mcr.microsoft.com/devcontainers/base:ubuntu", | ||
"features": { | ||
"ghcr.io/devcontainers/features/docker-in-docker:2": {}, | ||
"ghcr.io/devcontainers/features/python:1": {}, | ||
"ghcr.io/devcontainers-contrib/features/apt-get-packages:1": { | ||
"packages": "build-essential,openssl,libssl-dev,libc6-dev,clang,libclang-dev,ca-certificates,curl,cargo" | ||
} | ||
}, | ||
|
||
// Configure tool-specific properties. | ||
"customizations": { | ||
"vscode": { | ||
"extensions": [ | ||
"ms-azuretools.vscode-docker", | ||
"ms-python.python", | ||
"mads-hartmann.bash-ide-vscode", | ||
"timonwong.shellcheck", | ||
"tamasfe.even-better-toml", | ||
"github.vscode-github-actions", | ||
"GitHub.copilot", | ||
"GitHub.copilot-chat", | ||
"DavidAnson.vscode-markdownlint", | ||
"wayou.vscode-todo-highlight" | ||
] | ||
} | ||
}, | ||
|
||
// Install stuff not packaged in Ubuntu | ||
"onCreateCommand": { | ||
"yq": "./.devcontainer/yq.sh", | ||
"deno": "./.devcontainer/deno.sh" | ||
}, | ||
"postCreateCommand": { | ||
"start9": "./.devcontainer/start9.sh" | ||
}, | ||
|
||
// Add start-sdk to the PATH | ||
"containerEnv": { | ||
"PATH": "$HOME/.cargo/bin:$PATH" | ||
}, | ||
|
||
"remoteUser": "vscode" | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#!/bin/sh | ||
|
||
# set error | ||
set -e | ||
|
||
# move to a homedir | ||
mkdir "$HOME/start9" && cd "$HOME/start9" && pwd | ||
|
||
# Start9 SDK | ||
git clone --recursive https://github.com/Start9Labs/start-os.git --branch sdk | ||
cd start-os/ | ||
make sdk | ||
start-sdk init |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/sh | ||
|
||
# set error | ||
set -e | ||
|
||
# Move to a tempdir | ||
cd "$(mktemp -d)" | ||
|
||
# Hardcoded to yq 4.43.1 | ||
curl -LO https://github.com/mikefarah/yq/releases/download/v4.43.1/yq_linux_amd64.tar.gz | ||
|
||
# Check the checksum | ||
echo "049d1f3791cc25160a71b0bbe14a58302fb6a7e4462e07d5cbd543787a9ad815 yq_linux_amd64.tar.gz" | sha256sum -c - | ||
|
||
# untar | ||
tar -xzf yq_linux_amd64.tar.gz | ||
sudo mv yq_linux_amd64 /usr/bin/yq | ||
|
||
# remove everything | ||
rm -rf -- * | ||
|
||
# test command | ||
yq --version |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
name: Build Service | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
paths-ignore: ["*.md"] | ||
branches: ["main", "master"] | ||
push: | ||
paths-ignore: ["*.md"] | ||
branches: ["main", "master"] | ||
|
||
jobs: | ||
BuildPackage: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Prepare StartOS SDK | ||
uses: Start9Labs/sdk@v1 | ||
|
||
- name: Checkout services repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Build the service package | ||
id: build | ||
run: | | ||
git submodule update --init --recursive | ||
start-sdk init | ||
make | ||
PACKAGE_ID=$(yq -oy ".id" manifest.*) | ||
echo "package_id=$PACKAGE_ID" >> $GITHUB_ENV | ||
shell: bash | ||
|
||
- name: Upload .s9pk | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ env.package_id }}.s9pk | ||
path: ./${{ env.package_id }}.s9pk |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
name: Release Service | ||
|
||
on: | ||
push: | ||
tags: | ||
- 'v*.*' | ||
|
||
jobs: | ||
ReleasePackage: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Prepare StartOS SDK | ||
uses: Start9Labs/sdk@v1 | ||
|
||
- name: Checkout services repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Build the service package | ||
run: | | ||
git submodule update --init --recursive | ||
start-sdk init | ||
make | ||
- name: Setting package ID and title from the manifest | ||
id: package | ||
run: | | ||
echo "package_id=$(yq -oy ".id" manifest.*)" >> $GITHUB_ENV | ||
echo "package_title=$(yq -oy ".title" manifest.*)" >> $GITHUB_ENV | ||
shell: bash | ||
|
||
- name: Generate sha256 checksum | ||
run: | | ||
PACKAGE_ID=${{ env.package_id }} | ||
sha256sum ${PACKAGE_ID}.s9pk > ${PACKAGE_ID}.s9pk.sha256 | ||
shell: bash | ||
|
||
- name: Generate changelog | ||
run: | | ||
PACKAGE_ID=${{ env.package_id }} | ||
echo "## What's Changed" > change-log.txt | ||
yq -oy '.release-notes' manifest.* >> change-log.txt | ||
echo "## SHA256 Hash" >> change-log.txt | ||
echo '```' >> change-log.txt | ||
sha256sum ${PACKAGE_ID}.s9pk >> change-log.txt | ||
echo '```' >> change-log.txt | ||
shell: bash | ||
|
||
- name: Create GitHub Release | ||
uses: softprops/action-gh-release@v2 | ||
with: | ||
tag_name: ${{ github.ref_name }} | ||
name: ${{ env.package_title }} ${{ github.ref_name }} | ||
prerelease: true | ||
body_path: change-log.txt | ||
files: | | ||
./${{ env.package_id }}.s9pk | ||
./${{ env.package_id }}.s9pk.sha256 | ||
- name: Publish to Registry | ||
env: | ||
S9USER: ${{ secrets.S9USER }} | ||
S9PASS: ${{ secrets.S9PASS }} | ||
S9REGISTRY: ${{ secrets.S9REGISTRY }} | ||
run: | | ||
if [[ -z "$S9USER" || -z "$S9PASS" || -z "$S9REGISTRY" ]]; then | ||
echo "Publish skipped: missing registry credentials." | ||
else | ||
start-sdk publish https://$S9USER:$S9PASS@$S9REGISTRY ${{ env.package_id }}.s9pk | ||
fi |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,3 @@ | ||
[submodule "hello-world"] | ||
path = hello-world | ||
url = https://github.com/Start9Labs/hello-world | ||
[submodule "Labelbase"] | ||
path = Labelbase | ||
url = https://github.com/Labelbase/Labelbase.git |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,44 @@ | ||
FROM alpine:3.17 | ||
FROM mysql:8.0-debian@sha256:1579fe3a97a436cc10824fc771a07fcedc92213e7ab7604eb5d2976ca419abc8 | ||
|
||
RUN apk update | ||
RUN apk add --no-cache tini && \ | ||
rm -f /var/cache/apk/* | ||
ENV MYSQL_USER=ulabelbase | ||
ENV MYSQL_DATABASE=labelbase | ||
ENV MYSQL_ROOT_PASSWORD=labelbase | ||
ENV MYSQL_PASSWORD=labelbase | ||
ENV MYSQL_PWD=labelbase | ||
|
||
ARG ARCH | ||
ADD ./hello-world/target/${ARCH}-unknown-linux-musl/release/hello-world /usr/local/bin/hello-world | ||
RUN chmod +x /usr/local/bin/hello-world | ||
ADD ./docker_entrypoint.sh /usr/local/bin/docker_entrypoint.sh | ||
RUN chmod a+x /usr/local/bin/docker_entrypoint.sh | ||
RUN apt-get update && \ | ||
apt-get install -y \ | ||
default-libmysqlclient-dev \ | ||
build-essential pkg-config gcc \ | ||
cron vim logrotate \ | ||
libpcre3-dev \ | ||
python3-dev python3-pip \ | ||
#default-mysql-client \ | ||
nginx \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# Cleanup to reduce image size | ||
RUN apt-get purge -y --auto-remove build-essential | ||
|
||
# Copy configs/migrations | ||
COPY ./Labelbase/mysql/init.sql /docker-entrypoint-initdb.d/init.sql | ||
COPY ./Labelbase/nginx/nginx.conf /etc/nginx/ | ||
|
||
ENV PYTHONUNBUFFERED 1 | ||
|
||
EXPOSE 8000 | ||
|
||
VOLUME /var/lib/mysql | ||
VOLUME /run/mysqld | ||
VOLUME /docker-entrypoint-initdb.d | ||
|
||
WORKDIR /app | ||
|
||
COPY ./Labelbase/django /app/ | ||
|
||
# Python deps | ||
RUN pip install --upgrade pip --break-system-packages | ||
RUN pip install --no-cache-dir --break-system-packages -r /app/requirements.txt | ||
|
||
COPY ./run.sh /app/run.sh | ||
RUN chmod +x /app/run.sh |
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
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
Oops, something went wrong.