WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 7a3f267

Browse files
authored
feat: add rybbit (#15)
1 parent 6bc0d37 commit 7a3f267

File tree

3 files changed

+197
-0
lines changed

3 files changed

+197
-0
lines changed

templates/rybbit/.env.example

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# https://rybbit.com/docs/self-hosting-guides/self-hosting-manual
2+
# Required: Your domain and base URL
3+
DOMAIN_NAME=your.domain.com
4+
BASE_URL=https://your.domain.com
5+
# Required: Authentication secret (generate a random 32+ character string)
6+
BETTER_AUTH_SECRET=your-very-long-random-secret-string-here
7+
# Optional: Disable new user signups after creating admin account
8+
DISABLE_SIGNUP=false
9+
# Optional but recommended: Mapbox token for globe visualizations
10+
MAPBOX_TOKEN=your_mapbox_token
11+
# Optional: Custom ports (only needed if you want different ports)
12+
HOST_BACKEND_PORT="3001:3001"
13+
HOST_CLIENT_PORT="3002:3002"
14+
# Optional: Database credentials (defaults work fine)
15+
# CLICKHOUSE_PASSWORD=frog
16+
# POSTGRES_USER=frog
17+
# POSTGRES_PASSWORD=frog
18+
# POSTGRES_DB=analytics
19+
# CLICKHOUSE_DB=analytics

templates/rybbit/compose.yml

Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
services:
2+
caddy:
3+
profiles: ["with-webserver"]
4+
image: caddy:2.10.0
5+
container_name: caddy
6+
restart: unless-stopped
7+
ports:
8+
- "80:80"
9+
- "443:443"
10+
- "443:443/udp" # Needed for HTTP/3
11+
volumes:
12+
- ./Caddyfile:/etc/caddy/Caddyfile # Mount Caddy config file
13+
- caddy_data:/data # Mount persistent data volume for certs etc.
14+
- caddy_config:/config # Mount persistent config volume
15+
environment:
16+
# Pass domain name for use in Caddyfile
17+
# Email is configured via Caddyfile global options
18+
- DOMAIN_NAME=${DOMAIN_NAME}
19+
depends_on:
20+
- backend
21+
- client
22+
23+
clickhouse:
24+
container_name: clickhouse
25+
image: clickhouse/clickhouse-server:25.4.2
26+
volumes:
27+
- clickhouse-data:/var/lib/clickhouse
28+
configs:
29+
- source: clickhouse_network
30+
target: /etc/clickhouse-server/config.d/network.xml
31+
- source: clickhouse_json
32+
target: /etc/clickhouse-server/config.d/enable_json.xml
33+
- source: clickhouse_logging
34+
target: /etc/clickhouse-server/config.d/logging_rules.xml
35+
- source: clickhouse_user_logging
36+
target: /etc/clickhouse-server/config.d/user_logging.xml
37+
environment:
38+
- CLICKHOUSE_DB=${CLICKHOUSE_DB:-analytics}
39+
- CLICKHOUSE_USER=${CLICKHOUSE_USER:-default}
40+
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD:-frog}
41+
healthcheck:
42+
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8123/ping"]
43+
interval: 3s
44+
timeout: 5s
45+
retries: 5
46+
start_period: 10s
47+
restart: unless-stopped
48+
49+
postgres:
50+
image: postgres:17.4
51+
container_name: postgres
52+
environment:
53+
- POSTGRES_USER=${POSTGRES_USER:-frog}
54+
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-frog}
55+
- POSTGRES_DB=${POSTGRES_DB:-analytics}
56+
volumes:
57+
- postgres-data:/var/lib/postgresql/data
58+
healthcheck:
59+
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
60+
interval: 3s
61+
timeout: 5s
62+
retries: 5
63+
start_period: 10s
64+
restart: unless-stopped
65+
66+
backend:
67+
image: ghcr.io/rybbit-io/rybbit-backend:${IMAGE_TAG:-latest}
68+
container_name: backend
69+
build:
70+
context: .
71+
dockerfile: server/Dockerfile
72+
ports:
73+
- "${HOST_BACKEND_PORT:-127.0.0.1:3001:3001}"
74+
environment:
75+
- NODE_ENV=production
76+
- CLICKHOUSE_HOST=http://clickhouse:8123
77+
- CLICKHOUSE_DB=${CLICKHOUSE_DB:-analytics}
78+
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD:-frog}
79+
- POSTGRES_HOST=postgres
80+
- POSTGRES_PORT=5432
81+
- POSTGRES_DB=${POSTGRES_DB:-analytics}
82+
- POSTGRES_USER=${POSTGRES_USER:-frog}
83+
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-frog}
84+
- BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET}
85+
- BASE_URL=${BASE_URL}
86+
- DISABLE_SIGNUP=${DISABLE_SIGNUP}
87+
- DISABLE_TELEMETRY=${DISABLE_TELEMETRY}
88+
- MAPBOX_TOKEN=${MAPBOX_TOKEN}
89+
depends_on:
90+
clickhouse:
91+
condition: service_healthy
92+
postgres:
93+
condition: service_started
94+
healthcheck:
95+
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3001/api/health"]
96+
interval: 3s
97+
timeout: 5s
98+
retries: 5
99+
start_period: 10s
100+
restart: unless-stopped
101+
102+
client:
103+
image: ghcr.io/rybbit-io/rybbit-client:${IMAGE_TAG:-latest}
104+
container_name: client
105+
build:
106+
context: .
107+
dockerfile: client/Dockerfile
108+
args:
109+
NEXT_PUBLIC_BACKEND_URL: ${BASE_URL}
110+
NEXT_PUBLIC_DISABLE_SIGNUP: ${DISABLE_SIGNUP}
111+
ports:
112+
- "${HOST_CLIENT_PORT:-127.0.0.1:3002:3002}"
113+
environment:
114+
- NODE_ENV=production
115+
- NEXT_PUBLIC_BACKEND_URL=${BASE_URL}
116+
- NEXT_PUBLIC_DISABLE_SIGNUP=${DISABLE_SIGNUP}
117+
depends_on:
118+
- backend
119+
restart: unless-stopped
120+
121+
volumes:
122+
clickhouse-data:
123+
postgres-data:
124+
caddy_data: # Persistent volume for Caddy's certificates and state
125+
caddy_config: # Persistent volume for Caddy's configuration cache (optional but good practice)
126+
127+
configs:
128+
clickhouse_network:
129+
content: |
130+
<clickhouse>
131+
<listen_host>0.0.0.0</listen_host>
132+
</clickhouse>
133+
134+
clickhouse_json:
135+
content: |
136+
<clickhouse>
137+
<settings>
138+
<enable_json_type>1</enable_json_type>
139+
</settings>
140+
</clickhouse>
141+
142+
clickhouse_logging:
143+
content: |
144+
<clickhouse>
145+
<logger>
146+
<level>warning</level>
147+
<console>true</console>
148+
</logger>
149+
<query_thread_log remove="remove"/>
150+
<query_log remove="remove"/>
151+
<text_log remove="remove"/>
152+
<trace_log remove="remove"/>
153+
<metric_log remove="remove"/>
154+
<asynchronous_metric_log remove="remove"/>
155+
<session_log remove="remove"/>
156+
<part_log remove="remove"/>
157+
<latency_log remove="remove"/>
158+
<processors_profile_log remove="remove"/>
159+
</clickhouse>
160+
161+
clickhouse_user_logging:
162+
content: |
163+
<clickhouse>
164+
<profiles>
165+
<default>
166+
<log_queries>0</log_queries>
167+
<log_query_threads>0</log_query_threads>
168+
<log_processors_profiles>0</log_processors_profiles>
169+
</default>
170+
</profiles>
171+
</clickhouse>

templates/rybbit/template.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "Rybbit",
3+
"description": "Website analytics without cookies.",
4+
"version": "1.0.0",
5+
"author": "rjcndev",
6+
"tags": ["analytics"]
7+
}

0 commit comments

Comments
 (0)