commit a7cad8493a6d1b21fb713dc21588de98d0c00d2e Author: Lyssieth Date: Sun Oct 8 20:33:30 2023 +0300 feat: initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..589f2cc --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,21 @@ +platform: linux/amd64 + +steps: + build-image: + image: woodpeckerci/plugin-docker-buildx + settings: + platforms: linux/amd64 + repo: forge.lys.ee/lyssieth/rave + secrets: [forge_username, forge_password] + dockerfile: Dockerfile + tags: + - latest + - ${CI_COMMIT_SHA} + push: true + compress: true + logins: + - registry: forge.lys.ee + username: + from_secret: forge_username + password: + from_secret: forge_password diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..a4c5bee --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "rave" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..f0f4679 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "rave" +version = "0.1.0" +edition = "2021" +publish = ["crates-io"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5504b2d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +# --- Build --- +FROM clux/muslrust:latest AS build + +COPY Cargo.toml Cargo.lock /volume/ + +RUN mkdir -p /volume/src && touch /volume/src/lib.rs + +RUN cargo fetch --locked + +RUN cargo build --release + +RUN rm -rfv /volume/src/*.rs +COPY . . + +RUN rm -rfv /volume/target/*/release/rave +RUN cargo build --release --features docker + +RUN mv target/*-unknown-linux-musl/release/rave /tmp/rave + +# --- Runtime --- +FROM gcr.io/distroless/static AS runtime + +COPY --from=build /tmp/rave /rave + +VOLUME [ "/storage", "/config", "/cache" ] + +ENV RUST_LOG=info + +ENTRYPOINT ["/rave"] diff --git a/Justfile b/Justfile new file mode 100644 index 0000000..b38a666 --- /dev/null +++ b/Justfile @@ -0,0 +1,7 @@ +set dotenv-load := false + +build: + docker buildx build --pull --platform linux/amd64 -t "forge.lys.ee/lyssieth/rave:amd64" --load . + +run: build + docker run -it -v ./data:/storage lyssieth/rave:latest diff --git a/README.md b/README.md new file mode 100644 index 0000000..e2fbb2c --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# `rave` + +A basic bitch subsonic-compatible server thing written in Rust. \ No newline at end of file diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +}