2024-10-05 21:34:27 +00:00
|
|
|
# Forked from: https://git.vern.cc/cobra/rural-dict
|
2024-10-05 22:56:14 +00:00
|
|
|
- Edited for https://rural.rootdo.com
|
2024-10-05 21:10:27 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
2024-10-05 21:01:11 +00:00
|
|
|
# 📖 Rural Dictionary
|
|
|
|
|
|
|
|
> We're rural, not urban.
|
|
|
|
|
|
|
|
Privacy-respecting, NoJS-supporting Urban Dictionary frontend.
|
|
|
|
|
|
|
|
## 🌐 Instances
|
|
|
|
|
|
|
|
| URL | Country | Owner name | Owner Website |
|
|
|
|
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|------------|------------------------|
|
|
|
|
| <https://rd.vern.cc> + [Tor](http://rd.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion) + [I2P](http://vern5cxiaufqvhv4hu5ypkvw3tiwvuinae4evdbqzrioql6s2sha.b32.i2p) | US | ~vern | <https://vern.cc> |
|
|
|
|
| <https://rd.bloat.cat> | RO | bloatcat | <https://bloat.cat> |
|
|
|
|
| <https://rd.thirtysix.pw> | NL | thirtysix | <https://thirtysix.pw> |
|
|
|
|
|
|
|
|
## ✨ Features
|
|
|
|
|
|
|
|
Frontend supports all Urban Dictionary features and has endpoint-parity with it.
|
|
|
|
Available features include:
|
|
|
|
|
|
|
|
- Word definitions
|
|
|
|
- Author pages
|
|
|
|
- Homepage with words of the day
|
|
|
|
- Random word definitions
|
|
|
|
- 404 page with words similar to search
|
|
|
|
- Pagination
|
|
|
|
|
|
|
|
## 🚀 Deployment
|
|
|
|
|
|
|
|
Clone repository:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
git clone https://git.vern.cc/cobra/rural-dict.git
|
|
|
|
cd rural-dict
|
|
|
|
```
|
|
|
|
|
|
|
|
### 🐳 With Docker
|
|
|
|
|
|
|
|
```sh
|
|
|
|
docker build . -t rural-dict
|
|
|
|
docker compose up -d
|
|
|
|
```
|
|
|
|
|
|
|
|
### 💻 Without containerization
|
|
|
|
|
|
|
|
```sh
|
|
|
|
python3 -m venv .venv
|
|
|
|
. .venv/bin/activate
|
|
|
|
pip install -r requirements.lock
|
|
|
|
uvicorn src.main:app --no-access-log --proxy-headers --forwarded-allow-ips '*' --host 0.0.0.0 --port 5758
|
|
|
|
```
|
|
|
|
|
|
|
|
### 🛡️ Running behind a reverse proxy
|
|
|
|
|
|
|
|
To run the app behind a reverse proxy, ensure that the appropriate proxy headers are added.
|
|
|
|
Below is a sample configuration for NGINX:
|
|
|
|
|
|
|
|
```text
|
|
|
|
location / {
|
|
|
|
proxy_pass http://127.0.0.1:5758;
|
|
|
|
proxy_set_header Host $host;
|
|
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## 🔧 Development
|
|
|
|
|
|
|
|
Install Rye by following
|
|
|
|
the [installation guide](https://rye.astral.sh/guide/installation/).
|
|
|
|
|
|
|
|
Use `rye sync` to install dependencies and required Python version.
|
|
|
|
|
|
|
|
Use `rye run dev` to start development server which will reload on every change to source code.
|
|
|
|
|
|
|
|
Use `rye check --fix` and `rye fmt` to lint and format code. Assumed to be run before each commit
|
|
|
|
to guarantee code quality.
|
|
|
|
|
|
|
|
Use `rye run basedpyright` to ensure typing is correct.
|
|
|
|
|
|
|
|
## 🤝 Support
|
|
|
|
|
|
|
|
Join our [Matrix room](https://mto.vern.cc/#/#cobra-frontends:vern.cc) for support and other
|
|
|
|
things related to Rural Dictionary.
|
|
|
|
|
|
|
|
## 🔗 Redirection
|
|
|
|
|
|
|
|
To use Rural Dictionary, simply replace an Urban Dictionary URL with a Rural Dictionary URL from
|
|
|
|
the instance list above. Auto-redirect browser extension
|
|
|
|
like [Redirector](https://github.com/einaregilsson/Redirector) can be used to achieve this.
|
|
|
|
|
|
|
|
For example, change:
|
|
|
|
|
|
|
|
`https://urbandictionary.com/define.php?term=kin`
|
|
|
|
|
|
|
|
to:
|
|
|
|
|
|
|
|
`https://rd.vern.cc/define.php?term=kin`
|
|
|
|
|
|
|
|
**Note:** More endpoints are supported.
|
|
|
|
|
|
|
|
## 👥 Contributors
|
|
|
|
|
|
|
|
- [thirtysix](https://thirtysix.pw), rewrote project in a more modern libraries stack and
|
|
|
|
implemented missing Urban Dictionary features
|
|
|
|
- [zortazert](https://codeberg.org/zortazert), created the initial Urban Dictionary frontend using
|
|
|
|
JavaScript and helped develop Rural Dictionary
|
|
|
|
|
|
|
|
## 📜 License
|
|
|
|
|
|
|
|
This project is licensed under the AGPLv3+ license - see the [license file](LICENSE) for details.
|