Compare commits
12 Commits
v3.7.0
...
deba1fb661
| Author | SHA1 | Date | |
|---|---|---|---|
| deba1fb661 | |||
| 15cd5b73db | |||
| 88d81c2761 | |||
| fa6b5bbca6 | |||
| 3420b21af2 | |||
| eadefb4a18 | |||
| c5e3f4f405 | |||
|
|
de91cb0529 | ||
|
|
843e447c19 | ||
|
|
18aa49a2a3 | ||
|
|
40d31c7e9c | ||
|
|
504bb49748 |
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
@@ -3,4 +3,4 @@
|
|||||||
github: sethcottle
|
github: sethcottle
|
||||||
patreon: sethcottle
|
patreon: sethcottle
|
||||||
ko_fi: sethcottle
|
ko_fi: sethcottle
|
||||||
custom: [https://buymeacoffee.com/seth, https://paypal.me/sethcottle]
|
custom: ["https://buymeacoffee.com/seth", "https://paypal.me/sethcottle"]
|
||||||
|
|||||||
20
.pre-commit-config.yaml
Normal file
20
.pre-commit-config.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v5.0.0
|
||||||
|
hooks:
|
||||||
|
- id: trailing-whitespace
|
||||||
|
args: ["--markdown-linebreak-ext=md,markdown"]
|
||||||
|
exclude: \.svg$
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
exclude: \.svg$
|
||||||
|
- id: check-yaml
|
||||||
|
- id: double-quote-string-fixer
|
||||||
|
exclude: \.svg$
|
||||||
|
- repo: https://github.com/gitleaks/gitleaks
|
||||||
|
rev: v8.26.0
|
||||||
|
hooks:
|
||||||
|
- id: gitleaks
|
||||||
|
- repo: https://github.com/thoughtworks/talisman
|
||||||
|
rev: v1.37.0
|
||||||
|
hooks:
|
||||||
|
- id: talisman-commit
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
# Include any files or directories that you don't want to be copied to your
|
|
||||||
# container here (e.g., local build artifacts, temporary files, etc.).
|
|
||||||
#
|
|
||||||
# For more help, visit the .dockerignore file reference guide at
|
|
||||||
# https://docs.docker.com/go/build-context-dockerignore/
|
|
||||||
|
|
||||||
# Git
|
|
||||||
.git
|
|
||||||
.github
|
|
||||||
.gitignore
|
|
||||||
|
|
||||||
# Docker
|
|
||||||
.dockerignore
|
|
||||||
docker-compose*
|
|
||||||
compose.yaml
|
|
||||||
|
|
||||||
# Logs
|
|
||||||
*.log
|
|
||||||
|
|
||||||
# Editor directories and files
|
|
||||||
.idea
|
|
||||||
.vscode
|
|
||||||
**/.DS_Store
|
|
||||||
|
|
||||||
# Documentation files
|
|
||||||
README*
|
|
||||||
LICENSE*
|
|
||||||
VERSION*
|
|
||||||
CONTRIBUTING*
|
|
||||||
|
|
||||||
# Exclude unnecessary files
|
|
||||||
**/__pycache__
|
|
||||||
**/.venv
|
|
||||||
**/bin
|
|
||||||
**/obj
|
|
||||||
**/charts
|
|
||||||
**/.env
|
|
||||||
**/secrets.dev.yaml
|
|
||||||
**/values.dev.yaml
|
|
||||||
|
|
||||||
# Keep only essential files for the static website
|
|
||||||
!index.html
|
|
||||||
!privacy.html
|
|
||||||
!css/
|
|
||||||
!images/
|
|
||||||
!fonts/
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
FROM nginx:alpine
|
|
||||||
|
|
||||||
# Copy static website files
|
|
||||||
COPY . /usr/share/nginx/html/
|
|
||||||
|
|
||||||
# Configure nginx with basic optimization and logging to stdout/stderr
|
|
||||||
RUN echo 'server { \
|
|
||||||
listen 80; \
|
|
||||||
server_name localhost; \
|
|
||||||
root /usr/share/nginx/html; \
|
|
||||||
index index.html index.htm; \
|
|
||||||
\
|
|
||||||
# Enable access logging to stdout \
|
|
||||||
access_log /dev/stdout; \
|
|
||||||
error_log /dev/stderr; \
|
|
||||||
\
|
|
||||||
# Enable gzip compression \
|
|
||||||
gzip on; \
|
|
||||||
gzip_vary on; \
|
|
||||||
gzip_types text/plain text/css application/json application/javascript; \
|
|
||||||
\
|
|
||||||
# Basic cache settings \
|
|
||||||
location ~* \\.(?:css|js|jpg|jpeg|gif|png|ico|svg)$ { \
|
|
||||||
expires 7d; \
|
|
||||||
add_header Cache-Control "public"; \
|
|
||||||
} \
|
|
||||||
}' > /etc/nginx/conf.d/default.conf
|
|
||||||
|
|
||||||
# Forward nginx logs to Docker log collector
|
|
||||||
RUN ln -sf /dev/stdout /var/log/nginx/access.log && \
|
|
||||||
ln -sf /dev/stderr /var/log/nginx/error.log
|
|
||||||
|
|
||||||
EXPOSE 80
|
|
||||||
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
|
||||||
231
docker/README.md
231
docker/README.md
@@ -1,231 +0,0 @@
|
|||||||
# Docker for LittleLink
|
|
||||||
|
|
||||||
Docker configuration to run LittleLink in a container.
|
|
||||||
|
|
||||||
## File Structure
|
|
||||||
|
|
||||||
- `Dockerfile`: Defines how the image is built using nginx:alpine
|
|
||||||
- `compose.yaml`: Configuration for Docker Compose with volumes for development
|
|
||||||
- `.dockerignore`: Excludes unnecessary files from the image
|
|
||||||
|
|
||||||
## Technical Details
|
|
||||||
|
|
||||||
### Base Image
|
|
||||||
- Uses `nginx:alpine` for minimal image size (~20MB)
|
|
||||||
- Includes gzip compression for static files
|
|
||||||
- Optimized cache configuration for CSS, JavaScript, and images
|
|
||||||
- Configured to forward nginx logs to Docker log collector
|
|
||||||
|
|
||||||
### Volumes and Ports
|
|
||||||
- Mounts the project root directory as a volume for live development
|
|
||||||
- Exposes port 80 in the container, mapped to 8080 on the host
|
|
||||||
|
|
||||||
## Common Use Cases
|
|
||||||
|
|
||||||
### Creating Personal Link Pages for Different People
|
|
||||||
|
|
||||||
One of the main advantages of this Docker setup is how easily you can create multiple personalized instances of LittleLink:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Clone the repository
|
|
||||||
git clone https://github.com/sethcottle/littlelink.git littlelink-john
|
|
||||||
|
|
||||||
# Customize the content for John
|
|
||||||
cd littlelink-john
|
|
||||||
# Edit index.html with John's links, customize images, etc.
|
|
||||||
|
|
||||||
# Build a Docker image for John's page
|
|
||||||
docker build -f docker/Dockerfile -t littlelink-john .
|
|
||||||
|
|
||||||
# Run John's page on port 8080
|
|
||||||
docker run -d --name john-links -p 8080:80 littlelink-john
|
|
||||||
```
|
|
||||||
|
|
||||||
For additional pages:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Similarly for another person
|
|
||||||
git clone https://github.com/sethcottle/littlelink.git littlelink-jane
|
|
||||||
cd littlelink-jane
|
|
||||||
# Customize for Jane...
|
|
||||||
|
|
||||||
# Build and run on a different port
|
|
||||||
docker build -f docker/Dockerfile -t littlelink-jane .
|
|
||||||
docker run -d --name jane-links -p 8081:80 littlelink-jane
|
|
||||||
```
|
|
||||||
|
|
||||||
This approach allows you to:
|
|
||||||
- Maintain separate customized sites for different people
|
|
||||||
- Run multiple instances on different ports
|
|
||||||
- Update each site independently
|
|
||||||
- Easily deploy to various environments
|
|
||||||
|
|
||||||
## Development vs. Production
|
|
||||||
|
|
||||||
There are two main ways to use Docker with LittleLink:
|
|
||||||
|
|
||||||
### Development Workflow
|
|
||||||
|
|
||||||
In development, we use Docker Compose with mounted volumes to allow for live editing:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Start development environment
|
|
||||||
docker compose -f docker/compose.yaml up
|
|
||||||
```
|
|
||||||
|
|
||||||
This configuration:
|
|
||||||
- Mounts local files as a volume, so changes are reflected immediately
|
|
||||||
- Requires manual browser refresh to see changes
|
|
||||||
- Is ideal for testing and development
|
|
||||||
|
|
||||||
### Production Workflow
|
|
||||||
|
|
||||||
For production, you have two options:
|
|
||||||
|
|
||||||
#### Option 1: Production with Docker Compose
|
|
||||||
|
|
||||||
Create a production-specific docker-compose file:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
# docker/compose.prod.yaml
|
|
||||||
|
|
||||||
services:
|
|
||||||
web:
|
|
||||||
image: yourname/littlelink:latest
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- "8080:80"
|
|
||||||
# Optional volume for customizable content
|
|
||||||
volumes:
|
|
||||||
- /path/on/server/custom-content:/usr/share/nginx/html
|
|
||||||
```
|
|
||||||
|
|
||||||
Deploy using:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Build and tag the image
|
|
||||||
docker build -f docker/Dockerfile -t yourname/littlelink:latest .
|
|
||||||
|
|
||||||
# Run in production with compose
|
|
||||||
docker compose -f docker/compose.prod.yaml up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Option 2: Production with Docker Run
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Build a production image
|
|
||||||
docker build -f docker/Dockerfile -t yourname/littlelink:latest .
|
|
||||||
|
|
||||||
# Run in production (no volumes mounted)
|
|
||||||
docker run -d --name littlelink -p 80:80 --restart always yourname/littlelink:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
## Using Volumes in Production
|
|
||||||
|
|
||||||
You can customize the content in production by mounting a local directory:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Prepare a directory with your custom content
|
|
||||||
mkdir -p /path/on/server/custom-content
|
|
||||||
cp -r index.html css/ images/ /path/on/server/custom-content/
|
|
||||||
|
|
||||||
# Run with the custom content mounted
|
|
||||||
docker run -d --name littlelink -p 80:80 \
|
|
||||||
-v /path/on/server/custom-content:/usr/share/nginx/html \
|
|
||||||
yourname/littlelink:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
With Docker Compose:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
services:
|
|
||||||
web:
|
|
||||||
image: yourname/littlelink:latest
|
|
||||||
ports:
|
|
||||||
- "80:80"
|
|
||||||
volumes:
|
|
||||||
- /path/on/server/custom-content:/usr/share/nginx/html
|
|
||||||
```
|
|
||||||
|
|
||||||
This approach:
|
|
||||||
- Allows content customization without rebuilding the image
|
|
||||||
- Makes it easy to update content independently of the container
|
|
||||||
|
|
||||||
## Docker Commands Reference
|
|
||||||
|
|
||||||
### Development Commands
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Start in development mode
|
|
||||||
docker compose -f docker/compose.yaml up
|
|
||||||
|
|
||||||
# Start in background
|
|
||||||
docker compose -f docker/compose.yaml up -d
|
|
||||||
|
|
||||||
# Stop container
|
|
||||||
docker compose -f docker/compose.yaml down
|
|
||||||
|
|
||||||
# View logs (including HTTP request logs)
|
|
||||||
docker compose -f docker/compose.yaml logs -f
|
|
||||||
```
|
|
||||||
|
|
||||||
### Production Commands
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Build production image
|
|
||||||
docker build -f docker/Dockerfile -t yourname/littlelink:latest .
|
|
||||||
|
|
||||||
# Run production container
|
|
||||||
docker run -d --name littlelink -p 80:80 yourname/littlelink:latest
|
|
||||||
|
|
||||||
# View logs for the running container
|
|
||||||
docker logs -f littlelink
|
|
||||||
```
|
|
||||||
|
|
||||||
## Customization
|
|
||||||
|
|
||||||
### Change Port
|
|
||||||
Edit `docker/compose.yaml` for development:
|
|
||||||
```yaml
|
|
||||||
ports:
|
|
||||||
- "8081:80" # Change 8080 to desired port
|
|
||||||
```
|
|
||||||
|
|
||||||
Or specify port when running production container:
|
|
||||||
```bash
|
|
||||||
docker run -p 8081:80 yourname/littlelink:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
### Additional nginx Configuration
|
|
||||||
To modify the nginx configuration, you can edit the `Dockerfile` and add your own configuration:
|
|
||||||
|
|
||||||
```dockerfile
|
|
||||||
# Example: add custom configuration
|
|
||||||
COPY docker/nginx.conf /etc/nginx/conf.d/default.conf
|
|
||||||
```
|
|
||||||
|
|
||||||
## Deploying to Production
|
|
||||||
|
|
||||||
### Docker on VPS
|
|
||||||
```bash
|
|
||||||
# Pull image
|
|
||||||
docker pull yourname/littlelink:latest
|
|
||||||
|
|
||||||
# Run container
|
|
||||||
docker run -d --name littlelink -p 80:80 yourname/littlelink:latest
|
|
||||||
|
|
||||||
# With restart policy for auto-recovery
|
|
||||||
docker run -d --name littlelink --restart unless-stopped -p 80:80 yourname/littlelink:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
### Multiple Sites on One Server
|
|
||||||
You can run multiple LittleLink instances on the same server:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Run first site on port 8080
|
|
||||||
docker run -d --name site1 -p 8080:80 littlelink-site1
|
|
||||||
|
|
||||||
# Run second site on port 8081
|
|
||||||
docker run -d --name site2 -p 8081:80 littlelink-site2
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
services:
|
|
||||||
web:
|
|
||||||
build:
|
|
||||||
context: ..
|
|
||||||
dockerfile: docker/Dockerfile
|
|
||||||
ports:
|
|
||||||
- "8080:80"
|
|
||||||
volumes:
|
|
||||||
- ..:/usr/share/nginx/html
|
|
||||||
restart: unless-stopped
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB |
1
images/icons/gitea.svg
Normal file
1
images/icons/gitea.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 640 640" width="32" height="32"><path d="m395.9 484.2-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5 21.2-17.9 33.8-11.8 17.2 8.3 27.1 13 27.1 13l-.1-109.2 16.7-.1.1 117.1s57.4 24.2 83.1 40.1c3.7 2.3 10.2 6.8 12.9 14.4 2.1 6.1 2 13.1-1 19.3l-61 126.9c-6.2 12.7-21.4 18.1-33.9 12" style="fill:#fff"/><path d="M622.7 149.8c-4.1-4.1-9.6-4-9.6-4s-117.2 6.6-177.9 8c-13.3.3-26.5.6-39.6.7v117.2c-5.5-2.6-11.1-5.3-16.6-7.9 0-36.4-.1-109.2-.1-109.2-29 .4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5c-9.8-.6-22.5-2.1-39 1.5-8.7 1.8-33.5 7.4-53.8 26.9C-4.9 212.4 6.6 276.2 8 285.8c1.7 11.7 6.9 44.2 31.7 72.5 45.8 56.1 144.4 54.8 144.4 54.8s12.1 28.9 30.6 55.5c25 33.1 50.7 58.9 75.7 62 63 0 188.9-.1 188.9-.1s12 .1 28.3-10.3c14-8.5 26.5-23.4 26.5-23.4S547 483 565 451.5c5.5-9.7 10.1-19.1 14.1-28 0 0 55.2-117.1 55.2-231.1-1.1-34.5-9.6-40.6-11.6-42.6M125.6 353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6 321.8 60 295.4c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5 38.5-30c13.8-3.7 31-3.1 31-3.1s7.1 59.4 15.7 94.2c7.2 29.2 24.8 77.7 24.8 77.7s-26.1-3.1-43-9.1m300.3 107.6s-6.1 14.5-19.6 15.4c-5.8.4-10.3-1.2-10.3-1.2s-.3-.1-5.3-2.1l-112.9-55s-10.9-5.7-12.8-15.6c-2.2-8.1 2.7-18.1 2.7-18.1L322 273s4.8-9.7 12.2-13c.6-.3 2.3-1 4.5-1.5 8.1-2.1 18 2.8 18 2.8L467.4 315s12.6 5.7 15.3 16.2c1.9 7.4-.5 14-1.8 17.2-6.3 15.4-55 113.1-55 113.1" style="fill:#609926"/><path d="M326.8 380.1c-8.2.1-15.4 5.8-17.3 13.8s2 16.3 9.1 20c7.7 4 17.5 1.8 22.7-5.4 5.1-7.1 4.3-16.9-1.8-23.1l24-49.1c1.5.1 3.7.2 6.2-.5 4.1-.9 7.1-3.6 7.1-3.6 4.2 1.8 8.6 3.8 13.2 6.1 4.8 2.4 9.3 4.9 13.4 7.3.9.5 1.8 1.1 2.8 1.9 1.6 1.3 3.4 3.1 4.7 5.5 1.9 5.5-1.9 14.9-1.9 14.9-2.3 7.6-18.4 40.6-18.4 40.6-8.1-.2-15.3 5-17.7 12.5-2.6 8.1 1.1 17.3 8.9 21.3s17.4 1.7 22.5-5.3c5-6.8 4.6-16.3-1.1-22.6 1.9-3.7 3.7-7.4 5.6-11.3 5-10.4 13.5-30.4 13.5-30.4.9-1.7 5.7-10.3 2.7-21.3-2.5-11.4-12.6-16.7-12.6-16.7-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3 4.7-9.7 9.4-19.3 14.1-29-4.1-2-8.1-4-12.2-6.1-4.8 9.8-9.7 19.7-14.5 29.5-6.7-.1-12.9 3.5-16.1 9.4-3.4 6.3-2.7 14.1 1.9 19.8z" style="fill:#609926"/></svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
0
images/icons/unsplash.svg
Executable file → Normal file
0
images/icons/unsplash.svg
Executable file → Normal file
|
Before Width: | Height: | Size: 311 B After Width: | Height: | Size: 311 B |
@@ -7,7 +7,7 @@
|
|||||||
- theme-dark: Forces dark theme
|
- theme-dark: Forces dark theme
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<html class="theme-auto" lang="en"> <!-- Update`class="theme-auto" with your preference -->
|
<html class="theme-auto" lang="de"> <!-- Update`class="theme-auto" with your preference -->
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
@@ -401,7 +401,7 @@
|
|||||||
|
|
||||||
<!-- Feel free to add your own footer information, including updating `privacy.html` to reflect how your LittleLink fork is set up -->
|
<!-- Feel free to add your own footer information, including updating `privacy.html` to reflect how your LittleLink fork is set up -->
|
||||||
<footer>
|
<footer>
|
||||||
<a href="privacy.html">Privacy Policy</a> | Build your own by forking <a href="https://littlelink.io" target="_blank" rel="noopener">LittleLink</a>
|
Build your own by forking <a href="https://littlelink.io" target="_blank" rel="noopener">LittleLink</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
84
privacy.html
84
privacy.html
@@ -1,84 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
To change the theme, change the class on the html tag below to one of:
|
|
||||||
- theme-auto: Automatically switches based on user's system preferences
|
|
||||||
- theme-light: Forces light theme
|
|
||||||
- theme-dark: Forces dark theme
|
|
||||||
-->
|
|
||||||
|
|
||||||
<html class="theme-auto" lang="en"> <!-- Update `class="theme-auto"` with your preference -->
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
|
|
||||||
<!-- Page Title - Change this to your name/brand (50-60 characters recommended) -->
|
|
||||||
<title>Privacy Policy | LittleLink</title>
|
|
||||||
<link rel="icon" type="image/x-icon" href="/images/avatar.png"> <!-- Update this with your own favicon -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Meta Description - Write a description (150-160 characters recommended) -->
|
|
||||||
<meta name="description" content="Privacy policy and data collection information for LittleLink">
|
|
||||||
<meta name="robots" content="noindex"> <!-- Since this is a utility page -->
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="css/reset.css">
|
|
||||||
<link rel="stylesheet" href="css/style.css">
|
|
||||||
<link rel="stylesheet" href="css/brands.css">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div class="container-left" role="main">
|
|
||||||
<div class="column">
|
|
||||||
<nav role="navigation">
|
|
||||||
<a href="index.html" aria-label="Back to homepage">← Back to main page</a>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<h1>Privacy Overview</h1>
|
|
||||||
|
|
||||||
<section aria-labelledby="analytics-heading">
|
|
||||||
<h2 id="analytics-heading">Analytics</h2>
|
|
||||||
<p>The services contained in this section enable the Owner to monitor and analyze web traffic and can be used to keep track of User behavior.</p>
|
|
||||||
|
|
||||||
<h3>Example LLC</h3>
|
|
||||||
<ul role="list">
|
|
||||||
<li>Personal Data: various types of Data as specified in the privacy policy of the service</li>
|
|
||||||
<li><a href="https://example.com/privacy/" target="_blank" rel="noopener">Privacy Policy</a></li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section aria-labelledby="external-content-heading">
|
|
||||||
<h2 id="external-content-heading">External Content</h2>
|
|
||||||
<p>This type of service allows you to view content hosted on external platforms directly from the pages of this website and interact with them.</p>
|
|
||||||
<p>This type of service might still collect web traffic data for the pages where the service is installed, even when Users do not use it.</p>
|
|
||||||
|
|
||||||
<h3>Example LLC</h3>
|
|
||||||
<ul role="list">
|
|
||||||
<li>Personal Data: Usage Data; various types of Data as specified in the privacy policy of the service</li>
|
|
||||||
<li><a href="https://example.com/privacy/" target="_blank" rel="noopener">Privacy Policy</a></li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section aria-labelledby="hosting-heading">
|
|
||||||
<h2 id="hosting-heading">Hosting and Infrastructure</h2>
|
|
||||||
<p>This type of service has the purpose of hosting Data and files that enable this website to exist.</p>
|
|
||||||
<p>Some services among those listed below, if any, may work through geographically distributed servers, making it difficult to determine the actual location where the Personal Data are stored.</p>
|
|
||||||
|
|
||||||
<h3>Example LLC</h3>
|
|
||||||
<ul role="list">
|
|
||||||
<li>Personal Data: various types of Data as specified in the privacy policy of the service</li>
|
|
||||||
<li><a href="https://example.com/privacy" target="_blank" rel="noopener">Privacy Policy</a></li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<footer>
|
|
||||||
<p>Build your own by forking <a href="https://littlelink.io" target="_blank" rel="noopener">LittleLink.</a></p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
Reference in New Issue
Block a user