Add makefile and dockerfile

Signed-off-by: trivernis <trivernis@protonmail.com>
pull/15/head
trivernis 2 years ago
parent a0310c862f
commit dde9a1e4fb
Signed by: Trivernis
GPG Key ID: DFFFCC2C7A02DB45

@ -0,0 +1,39 @@
# compiled output
out
# IDEs and editors
mediarepo-api/.idea
mediarepo-daemon/.idea
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# System Files
.DS_Store
Thumbs.db
# other
*.zip
.vscode
# ui
mediarepo-ui/.angular
mediarepo-ui/.idea
mediarepo-ui/dist
mediarepo-ui/node_modules
mediarepo-ui/src-tauri/target
# daemon
mediarepo-daemon/.idea
mediarepo-daemon/target
mediarepo-daemon/*.svg
mediarepo-daemon/*.folded
# api
mediarepo-api/.idea
mediarepo-api/target

4
.gitignore vendored

@ -3,6 +3,7 @@
/tmp
/out-tsc
/target
/out
# IDEs and editors
mediarepo-api/.idea
@ -29,4 +30,5 @@ mediarepo-ui/.idea
Thumbs.db
# other
*.zip
*.zip
.vscode

@ -0,0 +1,45 @@
ARG DEBIAN_RELEASE=bullseye
FROM bitnami/minideb:${DEBIAN_RELEASE} AS builder
WORKDIR /usr/src
COPY mediarepo-api ./mediarepo-api
COPY mediarepo-daemon ./mediarepo-daemon
COPY mediarepo-ui ./mediarepo-ui
COPY Makefile .
RUN apt-get update
RUN apt-get install -y \
build-essential \
libssl-dev \
libgtk-3-dev \
libappindicator3-0.1-cil-dev \
patchelf \
librsvg2-dev \
curl \
wget \
pkg-config \
libavutil-dev \
libavformat-dev \
libavcodec-dev \
libavfilter-dev \
libavdevice-dev \
libavresample-dev \
libpostproc-dev \
clang \
nodejs \
npm \
libsoup2.4-dev \
libwebkit2gtk-4.0-dev \
file
RUN apt remove cmdtest -y
RUN npm install -g yarn
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
RUN install_packages make
RUN make build_daemon
RUN make build_ui

@ -0,0 +1,16 @@
default: build
build: build_daemon build_ui
create_output_dir:
mkdir -p out
build_daemon: create_output_dir
$(MAKE) -C mediarepo-daemon build
cp mediarepo-daemon/target/release/mediarepo-daemon* out/
build_ui: create_output_dir
$(MAKE) -C mediarepo-ui build
cp mediarepo-ui/src-tauri/target/release/mediarepo-ui* out/
cp mediarepo-ui/src-tauri/target/release/bundle out/
cp mediarepo-ui/src-tauri/icons out/

@ -51,7 +51,7 @@ Both can be downloaded from the [Releases](https://github.com/Trivernis/mediarep
Arch Linux:
```sh
yay -S mediarepo-daemon mediarepo
$ yay -S mediarepo-daemon mediarepo
```
When installing manually the `mediarepo-daemon` binary needs to be accessible in the `PATH` variable.
@ -63,6 +63,28 @@ When installing manually the `mediarepo-daemon` binary needs to be accessible in
You need to have a working rust toolchain (e.g. via [rustup](https://rustup.rs/)) and [node.js](https://nodejs.org) installed.
For building the UI the required tauri build tooling needs to be installed as well. Please follow [their documentation](https://tauri.studio/docs/getting-started/prerequisites) for setup information.
You also need to have a working `make` installation on your system.
### Building mediarepo
After all required dependencies are installed and tools are accessible in the `PATH`, you can build the project like follows:
All Componens:
```sh
$ make build
```
Daemon only:
```sh
$ make build_daemon
```
UI only:
```sh
$ make build_ui
```
After building the `out` directory contains all the built binaries and bundles.
## Usage and Further Information

@ -1,16 +0,0 @@
<h1 align="center">
mediarepo-api
</h1>
<h3 align="center" color="red">
This project is a work in progress
</h3>
- - -
This repository contains common mediarepo API types to implement the API both serverside
and clientside. It also contains a tauri plugin (feature "tauri-plugin") to hook it
into the tauri application lifecycle.
## License
GPL-3

@ -0,0 +1,7 @@
default: build
build: install_deps
cargo build --frozen --release --verbose
install_deps:
cargo fetch

@ -1,35 +0,0 @@
<h1 align="center">
mediarepo-daemon
</h1>
<p align="center">
<img src="https://github.com/Trivernis/mediarepo-ui/raw/main/src-tauri/icons/64x64.png"/>
</p>
<h3 align="center" style="color:red">This repository is a work in progress</h3>
- - -
This repository contains a media repository daemon that allows one to manage their media.
## Usage
1. Initialize an empty repository
```
mediarepo --repo "where/your/repo/should/be" init
```
2. Import some images
```
mediarepo --repo "path/to/your/repo" import "path/to/your/files/as/**/glob/*.png"
```
3. Start the daemon
```
mediarepo --repo "path/to/your/repo start
```
4. Open the mediarepo-ui and connect to the repository
## License
GPL-3

@ -0,0 +1,10 @@
default: build
build: install_tauri install_angular
cargo tauri build --verbose
install_tauri:
cargo install tauri-cli --version ^1.0.0-rc.4
install_angular:
npm i --save-dev @angular/cli

@ -1,33 +0,0 @@
<h1 align="center">
mediarepo-ui
</h1>
<p align="center">
<img src="https://github.com/Trivernis/mediarepo-ui/raw/main/src-tauri/icons/64x64.png"/>
</p>
<h3 align="center" style="color:red">This repository is a work in progress</h3>
- - -
This repository contains a frontend client to connect to
the [mediarepo-daemon](../mediarepo-daemon). It is written in tauri (yay).
## Usage
Refer to [the tauri documentation](https://tauri.studio/en/docs/getting-started) for information about setting up your
environment to build this project. With the `cargo-tauri` tooling installed you can run
```
cargo tauri dev
```
to start the application in development mode or
```
cargo tauri build
```
to bundle the application.
## License
GPL-3

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save