Initial commit

This commit is contained in:
2025-07-30 12:32:14 +02:00
parent ddaa0e5f05
commit be72715cfe
8 changed files with 545 additions and 0 deletions

73
README.md Normal file
View File

@@ -0,0 +1,73 @@
# deno-no-ipv4-here
*Inspired by [ungleich](https://code.ungleich.ch/ungleich-public/ungleich-no-ipv4-here)*
A simple microservice that responds the following text to all requests
```
Sorry, (this part of) domain $domain is not reachable by IPv4. Please upgrade to IPv6 and try to reach $domain again.
```
Written for Deno.
## Configuration
The application uses the following environment variables:
- `SERVICE_DOMAIN`: The domain where this service is hosted (default: "localhost")
- Example: `SERVICE_DOMAIN=my-ipv6-service.example.com`
When making requests to this service, the domain you provide in the `back_to` parameter will be compared against this value to determine if it should be treated as an external domain.
## Running with Deno
1. Install Deno: https://deno.land/manual/getting_started/installation
2. Clone this repository:
```bash
git clone https://git.kyun.li/gunter/ungleich-no-ipv4-here
cd ungleich-no-ipv4-here
```
3. Start the service:
```bash
deno run --allow-net --allow-read app.ts
```
4. Set the SERVICE_DOMAIN environment variable for your domain:
```bash
SERVICE_DOMAIN=your-domain.example.com deno run --allow-net --allow-read app.ts
```
## Running with Docker
1. Build the Docker image:
```bash
docker build -t deno-no-ipv4-here .
```
2. Run the container with your domain configuration:
```bash
docker run -e SERVICE_DOMAIN=your-domain.example.com -p 8080:8080 deno-no-ipv4-here
```
## Example Caddy Configuration
Here's a Caddyfile configuration that redirects all non-configured domains to this service:
```caddy
# Caddyfile
(your_domain) {
# Your existing configuration for your domain
reverse_proxy localhost:8080
}
# Catch-all for all other domains
:80, :443 {
# Redirect to the no-ipv4-here service
redir https://no-ipv4-here.your-domain.example.com?back_to={host} permanent
}
```
This configuration:
1. Handles requests for your configured domain normally
2. Redirects all other domains to the no-ipv4-here service
3. Passes the original host as the `back_to` parameter
4. Uses a permanent redirect (HTTP 301)
Replace `no-ipv4-here.your-domain.example.com` with the domain where you're running this service.