forked from matteo/serves3
Improve README and install some extra files via CMake
This commit is contained in:
parent
804ab6ef36
commit
e3aca4fe72
|
@ -56,6 +56,6 @@ repos:
|
||||||
- id: trufflehog
|
- id: trufflehog
|
||||||
name: TruffleHog
|
name: TruffleHog
|
||||||
description: Detect secrets in your data.
|
description: Detect secrets in your data.
|
||||||
entry: bash -c 'podman run -v "$(pwd):/workdir" --rm docker.io/trufflesecurity/trufflehog:latest git file:///workdir'
|
entry: bash -c 'podman run -v "$(pwd):/workdir" --rm docker.io/trufflesecurity/trufflehog:latest git file:///workdir' --only-verified
|
||||||
language: system
|
language: system
|
||||||
stages: ["commit", "push"]
|
stages: ["commit", "push"]
|
||||||
|
|
|
@ -2,4 +2,5 @@
|
||||||
// SPDX-License-Identifier: CC0-1.0
|
// SPDX-License-Identifier: CC0-1.0
|
||||||
{
|
{
|
||||||
"liveServer.settings.port": 8001,
|
"liveServer.settings.port": 8001,
|
||||||
|
"cmake.configureOnOpen": true,
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,13 +3,15 @@
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.25)
|
cmake_minimum_required(VERSION 3.25)
|
||||||
|
|
||||||
project(serves3 VERSION 1.0.0 LANGUAGES NONE)
|
project(serves3 VERSION 1.1.0 LANGUAGES C)
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
Corrosion
|
Corrosion
|
||||||
GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git
|
GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git
|
||||||
GIT_TAG v0.4.1
|
GIT_TAG v0.5.0
|
||||||
)
|
)
|
||||||
FetchContent_MakeAvailable(Corrosion)
|
FetchContent_MakeAvailable(Corrosion)
|
||||||
|
|
||||||
|
@ -20,3 +22,7 @@ corrosion_import_crate(
|
||||||
message(STATUS "Imported crates: ${imported_crates}")
|
message(STATUS "Imported crates: ${imported_crates}")
|
||||||
|
|
||||||
install(IMPORTED_RUNTIME_ARTIFACTS serves3)
|
install(IMPORTED_RUNTIME_ARTIFACTS serves3)
|
||||||
|
install(FILES serves3.toml.example
|
||||||
|
DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||||
|
install(FILES serves3@.service
|
||||||
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/systemd/system)
|
||||||
|
|
48
README.md
48
README.md
|
@ -1,5 +1,8 @@
|
||||||
[//]: # SPDX-FileCopyrightText: © Matteo Settenvini <matteo.settenvini@montecristosoftware.eu>
|
|
||||||
[//]: # SPDX-License-Identifier: EUPL-1.2
|
<!--
|
||||||
|
SPDX-FileCopyrightText: © Matteo Settenvini <matteo.settenvini@montecristosoftware.eu>
|
||||||
|
SPDX-License-Identifier: EUPL-1.2
|
||||||
|
-->
|
||||||
|
|
||||||
# serves3
|
# serves3
|
||||||
|
|
||||||
|
@ -11,7 +14,37 @@ Also helpful to do a different TLS termination.
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
Copy `serves3.toml.example` to `serves3.toml` and adjust your settings.
|
Copy `serves3.toml.example` to `serves3.toml` from this project's sources and adjust your settings. If the project was built and installed via CMake, a copy of the example settings file is in `/usr/share/doc/serves3`.
|
||||||
|
|
||||||
|
For instance:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
# apply this configuration to Rocket's "default" profile
|
||||||
|
[default.s3_bucket]
|
||||||
|
|
||||||
|
# the bucket name
|
||||||
|
name = ""
|
||||||
|
# the API endpoint address
|
||||||
|
endpoint = "https://eu-central-1.linodeobjects.com"
|
||||||
|
# the bucket region
|
||||||
|
region = "eu-central-1"
|
||||||
|
# the access key ID
|
||||||
|
access_key_id = ""
|
||||||
|
# the access key secret
|
||||||
|
secret_access_key = ""
|
||||||
|
# whether to use path_style S3 URLs, see
|
||||||
|
# https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access
|
||||||
|
path_style = false
|
||||||
|
|
||||||
|
# Here you can add any other rocket options, see
|
||||||
|
# https://rocket.rs/guide/v0.5/configuration/
|
||||||
|
|
||||||
|
[default]
|
||||||
|
|
||||||
|
[debug]
|
||||||
|
|
||||||
|
[release]
|
||||||
|
```
|
||||||
|
|
||||||
You can also use the same file to customize the server options. See the [Rocket documentation](https://rocket.rs/v0.5-rc/guide/configuration/#rockettoml) for a list of understood values.
|
You can also use the same file to customize the server options. See the [Rocket documentation](https://rocket.rs/v0.5-rc/guide/configuration/#rockettoml) for a list of understood values.
|
||||||
|
|
||||||
|
@ -59,10 +92,10 @@ Then, e.g. for running on port 8000, you would put the corresponding configurati
|
||||||
If you want more granular control on installation options, use CMake:
|
If you want more granular control on installation options, use CMake:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cmake -B build .
|
cmake -DCMAKE_INSTALL_PREFIX=/usr -B build .
|
||||||
cmake --build build
|
cmake --build build
|
||||||
cmake --install build
|
sudo cmake --install build
|
||||||
cd run-folder # folder with Settings.toml
|
cd run-folder # folder with serves3.toml
|
||||||
serves3
|
serves3
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -70,7 +103,7 @@ Else you can simply rely on `cargo`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cargo install --root /usr/local --path . # for instance
|
cargo install --root /usr/local --path . # for instance
|
||||||
cd run-folder # folder with Settings.toml
|
cd run-folder # folder with serves3.toml
|
||||||
serves3
|
serves3
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -79,6 +112,7 @@ serves3
|
||||||
## 1.1.0 Reworked configuration file logic
|
## 1.1.0 Reworked configuration file logic
|
||||||
|
|
||||||
* **Breaking change**: configuration file renamed to `serves3.toml`. Please note that the format changed slightly; have a look at the provided `serves3.toml.example` file for reference.
|
* **Breaking change**: configuration file renamed to `serves3.toml`. Please note that the format changed slightly; have a look at the provided `serves3.toml.example` file for reference.
|
||||||
|
* Fixes #2: URLs to directories not ending with a slash are not redirected properly
|
||||||
|
|
||||||
## 1.0.0
|
## 1.0.0
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,28 @@
|
||||||
# SPDX-FileCopyrightText: Public domain.
|
# SPDX-FileCopyrightText: Public domain.
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
# apply this configuration to Rocket's "default" profile
|
||||||
[default.s3_bucket]
|
[default.s3_bucket]
|
||||||
|
|
||||||
|
# the bucket name
|
||||||
name = ""
|
name = ""
|
||||||
|
# the API endpoint address
|
||||||
endpoint = "https://eu-central-1.linodeobjects.com"
|
endpoint = "https://eu-central-1.linodeobjects.com"
|
||||||
|
# the bucket region
|
||||||
region = "eu-central-1"
|
region = "eu-central-1"
|
||||||
|
# the access key ID
|
||||||
access_key_id = ""
|
access_key_id = ""
|
||||||
|
# the access key secret
|
||||||
secret_access_key = ""
|
secret_access_key = ""
|
||||||
|
# whether to use path_style S3 URLs, see
|
||||||
|
# https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access
|
||||||
path_style = false
|
path_style = false
|
||||||
|
|
||||||
|
# Here you can add any other rocket options, see
|
||||||
|
# https://rocket.rs/guide/v0.5/configuration/
|
||||||
|
|
||||||
|
[default]
|
||||||
|
|
||||||
|
[debug]
|
||||||
|
|
||||||
|
[release]
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
# SPDX-FileCopyrightText: © Matteo Settenvini <matteo.settenvini@montecristosoftware.eu>
|
||||||
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=ServeS3, a S3 proxy
|
||||||
|
StartLimitInterval=100
|
||||||
|
StartLimitBurst=10
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/serves3
|
||||||
|
WorkingDirectory=/etc/serves3/%i/
|
||||||
|
Environment=ROCKET_PORT=%i
|
||||||
|
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5s
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in New Issue