Skip to content

Commit 2830a6f

Browse files
committed
Open port tcp port 3001 for local connections
1 parent bdc1855 commit 2830a6f

File tree

5 files changed

+55
-56
lines changed

5 files changed

+55
-56
lines changed

flake.lock

Lines changed: 10 additions & 44 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

inventories/strfry/inventory.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
relay:
33
hosts:
44
relay.nos.social:
5-
relay_image_tag: latest
5+
relay_image_tag: stable
66
news.nos.social:
77
relay_image_tag: news_b9903e9
88
olympics2024.nos.social:

roles/followers_server/tasks/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
loop:
2525
- "80"
2626
- "443"
27+
- "3001"
28+
- "7687"
2729

2830
- name: Ensure cert directory exist
2931
ansible.builtin.file:

roles/followers_server/templates/docker-compose.yml.tpl

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ services:
55
followers_server:
66
image: "{{ followers_server_image }}:{{ followers_server_image_tag }}"
77
container_name: "followers_server"
8+
ports:
9+
- "127.0.0.1:3001:3001" # 127.0.0.1 ensures it's only open locally, not exposed to the network
810
environment:
911
- APP__followers__neo4j_password={{ neo4j_password }}
1012
- APP__ENVIRONMENT=production
@@ -19,9 +21,24 @@ services:
1921
- {{ followers_server_dir }}/config/settings.production.yml:/app/config/settings.production.yml
2022
labels:
2123
- "traefik.enable=true"
24+
25+
# HTTP routing to port 3000
2226
- "traefik.http.routers.followers_server.rule=Host(`{{ domain }}`)"
2327
- "traefik.http.routers.followers_server.entrypoints=websecure"
2428
- "traefik.http.services.followers_server.loadbalancer.server.port=3000"
29+
30+
# TCP routing to port 3001
31+
- "traefik.tcp.routers.tcp_followers_server.rule=HostSNI(`{{ domain }}`)"
32+
- "traefik.tcp.routers.tcp_followers_server.entrypoints=tcp-3001"
33+
#- "traefik.tcp.routers.tcp_followers_server.tls=true"
34+
- "traefik.tcp.services.tcp_followers_server.loadbalancer.server.port=3001"
35+
36+
# Whitelist only IP of relay.nos.social. This was not working when the
37+
# 3001 port was exposed, don't know why
38+
- "traefik.tcp.middlewares.tcp_ipwhitelist.ipwhitelist.sourcerange=104.236.196.139/32"
39+
- "traefik.tcp.routers.tcp_followers_server.middlewares=tcp_ipwhitelist"
40+
41+
2542
depends_on:
2643
db:
2744
condition: service_healthy
@@ -30,7 +47,8 @@ services:
3047
- proxy
3148

3249
db:
33-
image: neo4j:5.22 # 5.23 has no graph-data-science plugin yet
50+
# 5.23 has no graph-data-science plugin yet
51+
image: neo4j:5.22
3452
platform: linux/amd64
3553
environment:
3654
- NEO4J_AUTH=neo4j/{{ neo4j_password }}
@@ -47,21 +65,22 @@ services:
4765
- db-plugins:/plugins
4866
labels:
4967
- "traefik.enable=true"
68+
69+
# HTTP routing for Neo4j Browser (port 7474)
5070
- "traefik.http.routers.neo4j.entrypoints=websecure"
51-
- "traefik.http.routers.neo4j.rule=Host(`{{ domain }}`) && PathPrefix(`/neo4j`)||PathPrefix(`/browser`)"
71+
- "traefik.http.routers.neo4j.rule=Host(`{{ domain }}`) && ((PathPrefix(`/neo4j`) || PathPrefix(`/browser`)))"
5272
- "traefik.http.routers.neo4j.tls=true"
53-
- "traefik.http.routers.neo4j.service=neo4j"
5473
- "traefik.http.routers.neo4j.middlewares=neo4j_strip"
5574
- "traefik.http.middlewares.neo4j_strip.stripprefix.prefixes=/neo4j"
5675
- "traefik.http.services.neo4j.loadbalancer.server.port=7474"
5776

58-
- "traefik.http.routers.neo4jdb.entrypoints=websecure"
59-
- "traefik.http.routers.neo4jdb.rule=Host(`{{ domain }}`) && PathPrefix(`/neo4jdb`)"
60-
- "traefik.http.routers.neo4j.middlewares=neo4jdb_strip"
61-
- "traefik.http.middlewares.neo4jdb_strip.stripprefix.prefixes=/neo4jdb"
62-
- "traefik.http.routers.neo4jdb.tls=true"
63-
- "traefik.http.routers.neo4jdb.service=neo4jdb"
64-
- "traefik.http.services.neo4jdb.loadbalancer.server.port=7687"
77+
# TCP routing for Neo4j Bolt (port 7687). TLS is not working for this
78+
# port, I think that's the reason the conection from the browser is not
79+
# working
80+
- "traefik.tcp.routers.neo4jdb.entrypoints=tcp-7687"
81+
- "traefik.tcp.routers.neo4jdb.rule=HostSNI(`{{ domain }}`)"
82+
- "traefik.tcp.routers.neo4jdb.tls=true"
83+
- "traefik.tcp.services.neo4jdb.loadbalancer.server.port=7687"
6584

6685
healthcheck:
6786
test: wget http://localhost:7474 || exit 1

roles/traefik/templates/traefik.yml.tpl

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ entryPoints:
2020
- main: "{{ domain }}"
2121
sans: "{{ '*.' + domain }}"
2222

23+
tcp-3000:
24+
address: ":3000"
25+
tcp-3001:
26+
address: ":3001"
27+
tcp-7687:
28+
address: ":7687"
29+
tcp-7474:
30+
address: ":7474"
31+
tcp-6362:
32+
address: ":6362"
33+
34+
2335
providers:
2436
docker:
2537
endpoint: "unix:///var/run/docker.sock"
@@ -34,4 +46,4 @@ certificatesResolvers:
3446
provider: cloudflare
3547
delayBeforeCheck: 0
3648
email: {{ cert_email }}
37-
storage: acme.json
49+
storage: acme.json

0 commit comments

Comments
 (0)