Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
ca3f6c0579 | |||
decc9e5139 | |||
d27bd782ce |
18
Cargo.lock
generated
18
Cargo.lock
generated
@ -173,9 +173,9 @@ checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663"
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.0.67"
|
||||
version = "1.0.68"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
|
||||
checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787"
|
||||
|
||||
[[package]]
|
||||
name = "cfg-if"
|
||||
@ -486,15 +486,15 @@ checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68"
|
||||
|
||||
[[package]]
|
||||
name = "httpdate"
|
||||
version = "1.0.0"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "05842d0d43232b23ccb7060ecb0f0626922c21f30012e97b767b30afd4a5d4b9"
|
||||
checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440"
|
||||
|
||||
[[package]]
|
||||
name = "hyper"
|
||||
version = "0.14.7"
|
||||
version = "0.14.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e5f105c494081baa3bf9e200b279e27ec1623895cd504c7dbef8d0b080fcf54"
|
||||
checksum = "d3f71a7eea53a3f8257a7b4795373ff886397178cd634430ea94e12d7fe4fe34"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"futures-channel",
|
||||
@ -603,13 +603,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.94"
|
||||
version = "0.2.95"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
|
||||
checksum = "789da6d93f1b866ffe175afc5322a4d76c038605a1c3319bb57b06967ca98a36"
|
||||
|
||||
[[package]]
|
||||
name = "libreddit"
|
||||
version = "0.14.4"
|
||||
version = "0.14.6"
|
||||
dependencies = [
|
||||
"askama",
|
||||
"async-recursion",
|
||||
|
@ -3,7 +3,7 @@ name = "libreddit"
|
||||
description = " Alternative private front-end to Reddit"
|
||||
license = "AGPL-3.0"
|
||||
repository = "https://github.com/spikecodes/libreddit"
|
||||
version = "0.14.4"
|
||||
version = "0.14.6"
|
||||
authors = ["spikecodes <19519553+spikecodes@users.noreply.github.com>"]
|
||||
edition = "2018"
|
||||
|
||||
@ -16,7 +16,7 @@ regex = "1.5.4"
|
||||
serde = { version = "1.0.126", features = ["derive"] }
|
||||
cookie = "0.15.0"
|
||||
futures-lite = "1.11.3"
|
||||
hyper = { version = "0.14.7", features = ["full"] }
|
||||
hyper = { version = "0.14.8", features = ["full"] }
|
||||
hyper-rustls = "0.22.1"
|
||||
route-recognizer = "0.3.0"
|
||||
serde_json = "1.0.64"
|
||||
|
41
README.md
41
README.md
@ -198,17 +198,17 @@ libreddit
|
||||
|
||||
Assign a default value for each setting by passing environment variables to Libreddit in the format `LIBREDDIT_DEFAULT_{X}`. Replace `{X}` with the setting name (see list below) in capital letters.
|
||||
|
||||
| Name | Possible values | Default value |
|
||||
|-----------------------|----------------------------------------------------------------------------------------|---------------|
|
||||
| theme | ["system", "light", "dark", "black", "dracula", "nord", "laserwave", "violet", "gold"] | system |
|
||||
| front_page | ["default", "popular", "all"] | default |
|
||||
| layout | ["card", "clean", "compact"] | card |
|
||||
| wide | ["on", "off"] | off |
|
||||
| comment_sort | ["hot", "new", "top", "rising", "controversial"] | hot |
|
||||
| post_sort | ["confidence", "top", "new", "controversial", "old"] | confidence |
|
||||
| show_nsfw | ["on", "off"] | off |
|
||||
| use_hls | ["on", "off"] | off |
|
||||
| hide_hls_notification | ["on", "off"] | off |
|
||||
| Name | Possible values | Default value |
|
||||
|-------------------------|------------------------------------------------------------------------------------------|---------------|
|
||||
| `THEME` | `["system", "light", "dark", "black", "dracula", "nord", "laserwave", "violet", "gold"]` | `system` |
|
||||
| `FRONT_PAGE` | `["default", "popular", "all"]` | `default` |
|
||||
| `LAYOUT` | `["card", "clean", "compact"]` | `card` |
|
||||
| `WIDE` | `["on", "off"]` | `off` |
|
||||
| `COMMENT_SORT` | `["hot", "new", "top", "rising", "controversial"]` | `hot` |
|
||||
| `POST_SORT` | `["confidence", "top", "new", "controversial", "old"]` | `confidence` |
|
||||
| `SHOW_NSFW` | `["on", "off"]` | `off` |
|
||||
| `USE_HLS` | `["on", "off"]` | `off` |
|
||||
| `HIDE_HLS_NOTIFICATION` | `["on", "off"]` | `off` |
|
||||
|
||||
### Examples
|
||||
|
||||
@ -228,6 +228,25 @@ proxy_http_version 1.1;
|
||||
```
|
||||
to your NGINX configuration file above your `proxy_pass` line.
|
||||
|
||||
## SystemD
|
||||
|
||||
You can use the SystemD service available in `contrib/libreddit.service`
|
||||
(install it on `/etc/systemd/system/libreddit.service`).
|
||||
|
||||
That service can be optionally configured in terms of environment variables by
|
||||
creating a file in `/etc/libreddit.conf`. Use the `contrib/libreddit.conf` as a
|
||||
template. You can also add the `LIBREDDIT_DEFAULT__{X}` settings explained
|
||||
above.
|
||||
|
||||
When "Proxying using NGINX" where the proxy is on the same machine, you should
|
||||
guarantee nginx waits for this service to start. Edit
|
||||
`/etc/systemd/system/libreddit.service.d/reverse-proxy.conf`:
|
||||
|
||||
```conf
|
||||
[Unit]
|
||||
Before=nginx.service
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
```
|
||||
|
2
contrib/libreddit.conf
Normal file
2
contrib/libreddit.conf
Normal file
@ -0,0 +1,2 @@
|
||||
ADDRESS=localhost
|
||||
PORT=12345
|
15
contrib/libreddit.service
Normal file
15
contrib/libreddit.service
Normal file
@ -0,0 +1,15 @@
|
||||
[Unit]
|
||||
Description=libreddit daemon
|
||||
After=network.service
|
||||
|
||||
[Service]
|
||||
DynamicUser=yes
|
||||
# Default Values
|
||||
Environment=ADDRESS=0.0.0.0
|
||||
Environment=PORT=8080
|
||||
# Optional Override
|
||||
EnvironmentFile=-/etc/libreddit.conf
|
||||
ExecStart=/usr/bin/libreddit -a ${ADDRESS} -p ${PORT}
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
14
src/main.rs
14
src/main.rs
@ -90,6 +90,13 @@ async fn main() {
|
||||
let matches = cli::new("Libreddit")
|
||||
.version(env!("CARGO_PKG_VERSION"))
|
||||
.about("Private front-end for Reddit written in Rust ")
|
||||
.arg(
|
||||
Arg::with_name("redirect-https")
|
||||
.short("r")
|
||||
.long("redirect-https")
|
||||
.help("Redirect all HTTP requests to HTTPS (no longer functional)")
|
||||
.takes_value(false),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("address")
|
||||
.short("a")
|
||||
@ -108,13 +115,6 @@ async fn main() {
|
||||
.default_value("8080")
|
||||
.takes_value(true),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("redirect-https")
|
||||
.short("r")
|
||||
.long("redirect-https")
|
||||
.help("Redirect all HTTP requests to HTTPS (no longer functional)")
|
||||
.takes_value(false),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("hsts")
|
||||
.short("H")
|
||||
|
@ -156,7 +156,7 @@ html, body, div, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, blockquote,
|
||||
pre, form, fieldset, table, th, td, select, input {
|
||||
margin: 0;
|
||||
color: var(--text);
|
||||
font-family: "Inter";
|
||||
font-family: "Inter", sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
@ -968,6 +968,7 @@ a.search_subreddit:hover {
|
||||
font-weight: normal;
|
||||
padding: 5px 5px;
|
||||
margin: 5px 0;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.comment_body.highlighted {
|
||||
@ -1195,7 +1196,7 @@ input[type="submit"] {
|
||||
}
|
||||
|
||||
.md code {
|
||||
font-family: monospace;
|
||||
font-family: monospace, sans-serif;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user