Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ install the same way, with Docker.
| [should-we](https://github.com/selfhostit/should-we) | Pick one option together, as a group | 8091 |
| [Flowy](https://github.com/selfhostit/flowy) | A private period and cycle tracker | 8092 |
| [Troye](https://github.com/selfhostit/troye) | A private calorie and weight tracker | 8093 |
| [Shoppa](https://github.com/selfhostit/shoppa) | A shared shopping list for your household | 8094 |
| [Calio](https://github.com/selfhostit/calio) | One calendar for your household: plans, pet sitting and trips | 8095 |

The port is where the installer puts each app, so they can all run on one machine. If
another program already has it, the app gets the next free port, and keeps that one.
Expand Down
6 changes: 4 additions & 2 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
# per app), TZ, and TS_AUTHKEY (a Tailscale auth key, to sign in without the link).
set -eu

apps="splitwiz should-we flowy troye"
apps="splitwiz should-we flowy troye shoppa calio"

# name, port, what it does
info() {
Expand All @@ -29,6 +29,8 @@ info() {
should-we) echo "8091|Pick one option together, as a group" ;;
flowy) echo "8092|A private period and cycle tracker" ;;
troye) echo "8093|A private calorie and weight tracker" ;;
shoppa) echo "8094|A shared shopping list for your household" ;;
calio) echo "8095|One calendar for your household: plans, pet sitting, trips" ;;
*) return 1 ;;
esac
}
Expand Down Expand Up @@ -159,7 +161,7 @@ fi

# --- Install ------------------------------------------------------------------

# The plasto-based apps (Flowy, Troye) come with deploy/install.sh, which takes
# The plasto-based apps (Flowy, Troye, Shoppa, Calio) come with deploy/install.sh, which takes
# the folder as its argument and PORT for a new install (or the next free port
# when that one is taken; Splitwiz's installer does the same). An empty TS_AUTHKEY
# skips their own Tailscale question: the shared node below covers them.
Expand Down
6 changes: 3 additions & 3 deletions linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ curl -fsSL https://raw.githubusercontent.com/selfhostit/docs/main/install.sh |

## Good to know

- **Ports:** Splitwiz 8090, should-we 8091, Flowy 8092, Troye 8093. If another program
already has one of these when an app is first installed, that app gets the next free
port instead, and the list at the end shows it. An app keeps its port from then on. To
- **Ports:** Splitwiz 8090, should-we 8091, Flowy 8092, Troye 8093, Shoppa 8094,
Calio 8095. If another program already has one of these when an app is first installed,
that app gets the next free port instead, and the list at the end shows it. An app keeps its port from then on. To
change one, edit the port in that app's `.env` and run the installer again.
- **Restarts:** the apps start again by themselves when the machine reboots.
- **SD cards** wear out with a database writing to them. A USB SSD is more reliable, and
Expand Down
6 changes: 4 additions & 2 deletions other-nas.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ The Compose files are in each app's repository:
[Splitwiz](https://github.com/selfhostit/splitwiz/blob/main/docker-compose.yml),
[should-we](https://github.com/selfhostit/should-we/blob/main/docker-compose.yml),
[Flowy](https://github.com/selfhostit/flowy/blob/main/deploy/docker-compose.yml),
[Troye](https://github.com/selfhostit/troye/blob/main/deploy/docker-compose.yml).
[Troye](https://github.com/selfhostit/troye/blob/main/deploy/docker-compose.yml),
[Shoppa](https://github.com/selfhostit/shoppa/blob/main/deploy/docker-compose.yml),
[Calio](https://github.com/selfhostit/calio/blob/main/deploy/docker-compose.yml).
Replace `./pb_data` with a full path on your pool, give each app its own port (Splitwiz
8090, should-we 8091, Flowy 8092, Troye 8093), and set your time zone in `TZ`.
8090, should-we 8091, Flowy 8092, Troye 8093, Shoppa 8094, Calio 8095), and set your time zone in `TZ`.

Then follow [phones](phones.md) to reach them over HTTPS.
6 changes: 4 additions & 2 deletions phones.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,13 @@ To sign in without the link, for example on a machine without a browser nearby,
sudo tailscale serve --bg --https=8091 http://127.0.0.1:8091 # should-we
sudo tailscale serve --bg --https=8092 http://127.0.0.1:8092 # Flowy
sudo tailscale serve --bg --https=8093 http://127.0.0.1:8093 # Troye
sudo tailscale serve --bg --https=8094 http://127.0.0.1:8094 # Shoppa
sudo tailscale serve --bg --https=8095 http://127.0.0.1:8095 # Calio
```

`tailscale serve status` shows the addresses. They stay after a restart.

Flowy and Troye can also join Tailscale on their own, each with its own name such as
Flowy, Troye, Shoppa and Calio can also join Tailscale on their own, each with its own name such as
`https://flowy.your-tailnet.ts.net`, when you install them with their own installer: see
their `docs/deploy.md`.

Expand Down Expand Up @@ -87,7 +89,7 @@ For public addresses such as `https://splitwiz.example.com`:
- **Without opening your router:** a Cloudflare Tunnel does the same from the inside.

Forward only port 443, and only to the reverse proxy. Never forward an app's own port (8090
to 8093) in your router: that serves the app over plain `http://`, so passwords cross the
to 8095) in your router: that serves the app over plain `http://`, so passwords cross the
internet unencrypted, and it skips the proxy. Turn off **UPnP** in the router too, so no
device on your network can open a port by itself.

Expand Down
2 changes: 2 additions & 0 deletions security.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ It is one plain shell script with comments. What it does:
3. For each app you pick, downloads and runs that app's own installer or compose file from
GitHub ([Flowy](https://github.com/selfhostit/flowy/blob/main/deploy/install.sh),
[Troye](https://github.com/selfhostit/troye/blob/main/deploy/install.sh),
[Shoppa](https://github.com/selfhostit/shoppa/blob/main/deploy/install.sh),
[Calio](https://github.com/selfhostit/calio/blob/main/deploy/install.sh),
[Splitwiz](https://github.com/selfhostit/splitwiz/blob/main/scripts/install.sh),
[should-we](https://github.com/selfhostit/should-we/blob/main/docker-compose.yml)).
Read those too if you want to see every step.
Expand Down
10 changes: 6 additions & 4 deletions synology.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,13 @@ Container Manager > Project > Create, once per app:
[Splitwiz](https://github.com/selfhostit/splitwiz/blob/main/docker-compose.yml),
[should-we](https://github.com/selfhostit/should-we/blob/main/docker-compose.yml),
[Flowy](https://github.com/selfhostit/flowy/blob/main/deploy/docker-compose.yml),
[Troye](https://github.com/selfhostit/troye/blob/main/deploy/docker-compose.yml)
[Troye](https://github.com/selfhostit/troye/blob/main/deploy/docker-compose.yml),
[Shoppa](https://github.com/selfhostit/shoppa/blob/main/deploy/docker-compose.yml),
[Calio](https://github.com/selfhostit/calio/blob/main/deploy/docker-compose.yml)

In the pasted file, set the port so two apps don't share one (the number after `:-` in the
`ports:` line: Splitwiz 8090, should-we 8091, Flowy 8092, Troye 8093), and your time zone
in the `TZ` line. For Flowy and Troye, also set `PUID` and `PGID` to your DSM user's ids
`ports:` line: Splitwiz 8090, should-we 8091, Flowy 8092, Troye 8093, Shoppa 8094, Calio
8095), and your time zone in the `TZ` line. For Flowy, Troye, Shoppa and Calio, also set `PUID` and `PGID` to your DSM user's ids
(run `id` over SSH, or leave them at 1000 and give that user the folder).

## 3. Reach them from your phones
Expand All @@ -58,7 +60,7 @@ Two ways, both described in [phones](phones.md):
walks through it step by step; repeat the reverse proxy step for each app with its own
name, such as `flowy.<your-name>.synology.me` to port 8092.

Either way, don't forward the apps' ports (8090 to 8093) or DSM's own ports (5000, 5001) in
Either way, don't forward the apps' ports (8090 to 8095) or DSM's own ports (5000, 5001) in
your router, and leave DSM's **QuickConnect** off unless you use it: they put the apps or
DSM's sign-in page on the internet, where bots try passwords all day. With a public address,
forward only 443 to DSM's reverse proxy.
Expand Down
Loading