mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2025-09-12 04:32:58 +02:00
Compare commits
23 commits
7b519ccabb
...
782db347f9
Author | SHA1 | Date | |
---|---|---|---|
|
782db347f9 | ||
|
7fc0de3643 | ||
|
c99307834e | ||
|
b08b35668f | ||
|
58f81b610f | ||
|
f25e9a98a7 | ||
|
a5ce7f0991 | ||
|
a91aa29cff | ||
|
6010e550c2 | ||
|
33b0bf0576 | ||
|
f1708b09cc | ||
|
689024b29c | ||
|
d886a0738a | ||
|
f63a5b0a7e | ||
|
a8da08a210 | ||
|
956bdeb021 | ||
|
e4a43b1a5b |
||
|
5775e0ad9d |
||
|
238cc627e3 |
||
|
b1516209c4 |
||
|
0589884109 |
||
|
4a83df5b57 |
||
|
aa08edc55f |
6 changed files with 41 additions and 25 deletions
5
.github/FUNDING.yml
vendored
5
.github/FUNDING.yml
vendored
|
@ -1,5 +1,4 @@
|
||||||
github: [JadedBlueEyes]
|
github: [JadedBlueEyes, nexy7574]
|
||||||
# Doesn't support an array, so we can only list nex
|
|
||||||
ko_fi: nexy7574
|
|
||||||
custom:
|
custom:
|
||||||
|
- https://ko-fi.com/nexy7574
|
||||||
- https://ko-fi.com/JadedBlueEyes
|
- https://ko-fi.com/JadedBlueEyes
|
||||||
|
|
|
@ -57,7 +57,7 @@ Continuwuity aims to:
|
||||||
|
|
||||||
### Can I try it out?
|
### Can I try it out?
|
||||||
|
|
||||||
Check out the [documentation](introduction) for installation instructions.
|
Check out the [documentation](https://continuwuity.org) for installation instructions.
|
||||||
|
|
||||||
There are currently no open registration Continuwuity instances available.
|
There are currently no open registration Continuwuity instances available.
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,15 @@ services:
|
||||||
#- ./continuwuity.toml:/etc/continuwuity.toml
|
#- ./continuwuity.toml:/etc/continuwuity.toml
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.continuwuity.rule=(Host(`matrix.example.com`) || (Host(`example.com`) && PathPrefix(`/.well-known/matrix`)))"
|
||||||
|
- "traefik.http.routers.continuwuity.entrypoints=websecure" # your HTTPS entry point
|
||||||
|
- "traefik.http.routers.continuwuity.tls=true"
|
||||||
|
- "traefik.http.routers.continuwuity.service=continuwuity"
|
||||||
|
- "traefik.http.services.continuwuity.loadbalancer.server.port=6167"
|
||||||
|
# possibly, depending on your config:
|
||||||
|
# - "traefik.http.routers.continuwuity.tls.certresolver=letsencrypt"
|
||||||
environment:
|
environment:
|
||||||
CONTINUWUITY_SERVER_NAME: your.server.name.example # EDIT THIS
|
CONTINUWUITY_SERVER_NAME: your.server.name.example # EDIT THIS
|
||||||
CONTINUWUITY_DATABASE_PATH: /var/lib/continuwuity
|
CONTINUWUITY_DATABASE_PATH: /var/lib/continuwuity
|
||||||
|
|
|
@ -12,6 +12,14 @@ services:
|
||||||
#- ./continuwuity.toml:/etc/continuwuity.toml
|
#- ./continuwuity.toml:/etc/continuwuity.toml
|
||||||
networks:
|
networks:
|
||||||
- proxy
|
- proxy
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.continuwuity.rule=(Host(`matrix.example.com`) || (Host(`example.com`) && PathPrefix(`/.well-known/matrix`)))"
|
||||||
|
- "traefik.http.routers.continuwuity.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.continuwuity.tls.certresolver=letsencrypt"
|
||||||
|
- "traefik.http.services.continuwuity.loadbalancer.server.port=6167"
|
||||||
|
# Uncomment and adjust the following if you want to use middleware
|
||||||
|
# - "traefik.http.routers.continuwuity.middlewares=secureHeaders@file"
|
||||||
environment:
|
environment:
|
||||||
CONTINUWUITY_SERVER_NAME: your.server.name.example # EDIT THIS
|
CONTINUWUITY_SERVER_NAME: your.server.name.example # EDIT THIS
|
||||||
CONTINUWUITY_TRUSTED_SERVERS: '["matrix.org"]'
|
CONTINUWUITY_TRUSTED_SERVERS: '["matrix.org"]'
|
||||||
|
|
4
docs/static/announcements.json
vendored
4
docs/static/announcements.json
vendored
|
@ -6,8 +6,8 @@
|
||||||
"message": "Welcome to Continuwuity! Important announcements about the project will appear here."
|
"message": "Welcome to Continuwuity! Important announcements about the project will appear here."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 3,
|
||||||
"message": "🎉 Continuwuity v0.5.0-rc.6 is now available! This release includes improved knock-restricted room handling, automatic support contact configuration, and a new HTML landing page. Check [the release notes for full details](https://forgejo.ellis.link/continuwuation/continuwuity/releases/tag/v0.5.0-rc.6) and upgrade instructions."
|
"message": "_taps microphone_ The Continuwuity 0.5.0-rc.7 release is now available, and it's better than ever! **177 commits**, **35 pull requests**, **11 contributors,** and a lot of new stuff!\n\nFor highlights, we've got:\n\n* 🕵️ Full Policy Server support to fight spam!\n* 🚀 Smarter room & space upgrades.\n* 🚫 User suspension tools for better moderation.\n* 🤖 reCaptcha support for safer open registration.\n* 🔍 Ability to disable read receipts & typing indicators.\n* ⚡ Sweeping performance improvements!\n\nGet the [full changelog and downloads on our Forgejo](https://forgejo.ellis.link/continuwuation/continuwuity/releases/tag/v0.5.0-rc.7) - and make sure you're in the [Announcements room](https://matrix.to/#/!releases:continuwuity.org/$hN9z6L2_dTAlPxFLAoXVfo_g8DyYXu4cpvWsSrWhmB0) to get stuff like this sooner."
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,25 +165,6 @@ pub async fn create_hash_and_sign_event(
|
||||||
return Err!(Request(Forbidden("Event is not authorized.")));
|
return Err!(Request(Forbidden("Event is not authorized.")));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check with the policy server
|
|
||||||
match self
|
|
||||||
.services
|
|
||||||
.event_handler
|
|
||||||
.ask_policy_server(&pdu, room_id)
|
|
||||||
.await
|
|
||||||
{
|
|
||||||
| Ok(true) => {},
|
|
||||||
| Ok(false) => {
|
|
||||||
return Err!(Request(Forbidden(debug_warn!(
|
|
||||||
"Policy server marked this event as spam"
|
|
||||||
))));
|
|
||||||
},
|
|
||||||
| Err(e) => {
|
|
||||||
// fail open
|
|
||||||
warn!("Failed to check event with policy server: {e}");
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hash and sign
|
// Hash and sign
|
||||||
let mut pdu_json = utils::to_canonical_object(&pdu).map_err(|e| {
|
let mut pdu_json = utils::to_canonical_object(&pdu).map_err(|e| {
|
||||||
err!(Request(BadJson(warn!("Failed to convert PDU to canonical JSON: {e}"))))
|
err!(Request(BadJson(warn!("Failed to convert PDU to canonical JSON: {e}"))))
|
||||||
|
@ -222,6 +203,25 @@ pub async fn create_hash_and_sign_event(
|
||||||
|
|
||||||
pdu_json.insert("event_id".into(), CanonicalJsonValue::String(pdu.event_id.clone().into()));
|
pdu_json.insert("event_id".into(), CanonicalJsonValue::String(pdu.event_id.clone().into()));
|
||||||
|
|
||||||
|
// Check with the policy server
|
||||||
|
match self
|
||||||
|
.services
|
||||||
|
.event_handler
|
||||||
|
.ask_policy_server(&pdu, room_id)
|
||||||
|
.await
|
||||||
|
{
|
||||||
|
| Ok(true) => {},
|
||||||
|
| Ok(false) => {
|
||||||
|
return Err!(Request(Forbidden(debug_warn!(
|
||||||
|
"Policy server marked this event as spam"
|
||||||
|
))));
|
||||||
|
},
|
||||||
|
| Err(e) => {
|
||||||
|
// fail open
|
||||||
|
warn!("Failed to check event with policy server: {e}");
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
// Generate short event id
|
// Generate short event id
|
||||||
let _shorteventid = self
|
let _shorteventid = self
|
||||||
.services
|
.services
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue