profileShare

rasmusjy / profileshare

Read-only snapshot

No repository description.

main default branch 54 files Expires Sep 13, 2026, 9:06 AM
DEPLOY.md 4,334 bytes
1 # profileShare juurutamine, code.rasmusj.com
2
3 Eesmärk: rasmusj.com saab näidata privaatsete repode koodi ilma ühtegi repo
4 avalikuks tegemata. Portfooliolehel on kaks linki, üks kogu hetktõmmisele ja
5 üks iga projekti juures otse selle repo juurde.
6
7 Kolm sammu, millest ainult esimest ja kolmandat pead ise tegema.
8
9 ---
10
11 ## 1. DNS ja GitHubi app (10 min, sinu teha)
12
13 **DNS.** Lisa A-kirje `code.rasmusj.com` -> sinu serveri IP, sama mis
14 ülejäänud saitidel. Oota, kuni `nslookup code.rasmusj.com` vastab.
15
16 **GitHubi app.** Sul on app juba olemas ja töötab lokaalselt. Vaja on ainult
17 kolm aadressi ümber suunata, sest need peavad olema samal origin'il kui
18 `BASE_URL`. Ava github.com/settings/apps, vali oma app ja muuda:
19
20 | Väli | Uus väärtus |
21 |---|---|
22 | Homepage URL | `https://code.rasmusj.com` |
23 | Callback URL | `https://code.rasmusj.com/auth/github/callback` |
24 | Setup URL | `https://code.rasmusj.com/github/installed` |
25
26 Klienditunnust ja saladust vahetada ei ole vaja, need jäävad samaks.
27
28 **Kontrolli, et app on paigaldatud kõigile portfoolio repodele.** Ava
29 github.com/settings/installations, vali app, "Configure", ja veendu, et
30 valitud on `splitapp`, `roundtable`, `voicetask`, `allyouknow`,
31 `countrysense` ja `profileshare`. Kui mõni puudub, lisa.
32
33 ---
34
35 ## 2. Server (esmakordselt, minu ette valmistatud)
36
37 **Caddy plokk.** Lisa `/opt/caddy/Caddyfile` faili ja lae Caddy uuesti
38 (`docker exec caddy caddy reload --config /etc/caddy/Caddyfile`):
39
40 ```
41 code.rasmusj.com {
42 encode zstd gzip
43 reverse_proxy profileshare:3000
44 }
45 ```
46
47 **.env serveris.** See fail elab ainult serveris, `deploy.sh` ei kirjuta seda
48 kunagi üle. Loo see kord:
49
50 ```bash
51 mkdir -p /opt/projects/profileshare
52 cat > /opt/projects/profileshare/.env <<'EOF'
53 GITHUB_CLIENT_ID=...
54 GITHUB_CLIENT_SECRET=...
55 GITHUB_APP_SLUG=...
56 NODE_ENV=production
57 SESSION_SECRET=...
58 BASE_URL=https://code.rasmusj.com
59 PORT=3000
60 DATABASE_PATH=data/profileshare.db
61 EOF
62 chmod 600 /opt/projects/profileshare/.env
63 ```
64
65 Kolm esimest väärtust kopeeri oma lokaalsest `.env` failist. **`SESSION_SECRET`
66 genereeri uus**, sest serveri andmebaas on uus ja lokaalse seansisaladuse
67 kaasa vedamine ei anna midagi peale ühe lisakoha, kust see lekkida saab:
68
69 ```bash
70 node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))"
71 ```
72
73 Lokaalset `data/profileshare.db` faili serverisse ei kopeerita. Selles on
74 neli aegunud hetktõmmist ja mõtet neid kaasa tuua ei ole.
75
76 **Juuruta:**
77
78 ```bash
79 ./deploy.sh
80 ```
81
82 Skript jooksutab enne saatmist testid, keeldub tööst kui `.env` puudub, ja
83 ootab lõpus, kuni tervisekontroll roheliseks läheb.
84
85 ---
86
87 ## 3. Hetktõmmis ja lingid portfooliolehele (5 min, sinu teha)
88
89 1. Ava `https://code.rasmusj.com`, logi GitHubiga sisse.
90 2. Vali kõik kuus repot: `splitapp`, `roundtable`, `voicetask`, `allyouknow`,
91 `countrysense`, `profileshare`.
92 3. Vali kehtivusaeg. **Võta 365 päeva.** Praktikakohta otsid mitu kuud ja
93 kirjades olev link peab veel siis töötama, kui keegi selle kolm nädalat
94 hiljem avab.
95 4. Kopeeri loodud link. See on kujul `https://code.rasmusj.com/s/<shareId>`.
96 5. Saada see link mulle, siis panen portfooliolehele paika. Või tee ise:
97 `portfolio/lib/content.ts`, väli `codeAccess.url`.
98
99 **Repo ID-d.** Kolm on juba teada, need on GitHubi püsivad numbrid ja neid ei
100 pea uuesti otsima:
101
102 | Projekt | repoId |
103 |---|---|
104 | roundtable | `1296615860` |
105 | countrysense | `1299668802` |
106 | voicetask | `1309047169` |
107
108 Puudu on `splitapp`, `allyouknow` ja `profileshare`. Need saab kätte nii: ava
109 hetktõmmises see repo ja vaata aadressi lõppu, `/repositories/<number>`.
110
111 ---
112
113 ## Kui link aegub
114
115 Tee töölaual uus hetktõmmis ja asenda portfoolios **üks rida**,
116 `codeAccess.url`. Repo ID-d on püsivad ja neid ei pea puutuma, sest
117 projektilingid ehitatakse kokku funktsiooniga `repoUrl()`.
118
119 Kui link on aegunud ja uut ei ole, kaovad koodilingid lehelt ise ära ja tekst
120 läheb tagasi variandile "küsi ja saadan lingi". Katkist linki leht kunagi ei
121 näita.
122
123 ## Kust mida vaadata
124
125 ```bash
126 docker logs -f profileshare # logid
127 docker inspect -f '{{.State.Health.Status}}' profileshare
128 docker exec profileshare ls -la /app/data # andmebaas on siin
129 ```
130
131 Varundus on ühe faili kopeerimine:
132
133 ```bash
134 docker cp profileshare:/app/data/profileshare.db ./profileshare-backup.db
135 ```
136