Initial commit
This commit is contained in:
73
README.md
Normal file
73
README.md
Normal 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.
|
||||
Reference in New Issue
Block a user