https://ππ.ml: Rocket Link
Service to create short emoji link for your long-long link.
https://ππ.ml/to/π β https://github.com/Seryiza/rocket-link/stargazers
Project requires Leiningen (2.0.0+).
export PORT=3000
export PROJECT_URL=http://localhost:3000
export DATABASE_URL=postgresql://postgres:pass@localhost:54320/rocket_link
$ lein deps
$ lein migratus migrate
$ lein repl
user=> (dev) ; Enter to development namespace
rocket-repl=> (start) ; Start systems (db connection, http server...)
rocket-repl=> (refresh) ; Reload changed namespaces and restart systems
See also: Clojure Workflow Reloaded, Mount REPL
If you use Neovim and Conjure, you can configurate your init.lua like this:
vim.g['conjure#client#clojure#nrepl#refresh#after'] = 'rocket-repl/restart'
And restart changed namespaces by default mapping <localleader>rr
. See Conjure doc. It's very cool!
ΠΠ»Π°Π²Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΌΠΎΠ΄Π·ΠΈ-ΡΡΡΠ»ΠΊΠΈΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ°ΠΌΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ / ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΡΡΠ»ΠΎΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅ Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡΠ Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΡΠ²ΠΎΠΈΡ ΡΡΡΠ»ΠΎΠΊ- Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ
- API endpoint Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ
- Π‘ΡΡΠ°Π½ΠΈΡΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π²ΡΠ΅Ρ ΡΡΡΠ»ΠΎΠΊ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠΌΠΎΠ΄Π·ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΡΠ»ΠΊΠΈ
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΠΌΠΎΠΌΡ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΌΠΎΠ΄Π·ΠΈ (ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ)
- ΠΡΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ env + config.edn
- ΠΠΎΠ±Π°Π²ΠΈΡΡ CSRF
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ Π±ΠΎΡΠΎΠ²
- ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΌΠΎΠ΄Π·ΠΈ ΠΈ ΡΠ±ΡΠ°ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠΌΠΎΠ΄Π·ΠΈ Π±Π΅Π· ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ URL (+ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° "Π΄ΠΎΠ±Π°Π²ΠΈΡΡ https://")
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ 5xx (Sentry?)
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ Π½Π΅ Π±ΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ Unicode Emoji
- Π‘Π΄Π΅Π»Π°ΡΡ punycode/redirect ΠΊΠ°ΠΊ middleware (ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ring redirect)
- Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠ΄Π° ΠΏΡΠ½ΠΈΠΊΠΎΠ΄Π° (Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ origin link Π²
/my/links
)
- Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠ΄Π° ΠΏΡΠ½ΠΈΠΊΠΎΠ΄Π° (Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ origin link Π²
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ SEO
- ΠΠΎΠ±Π°Π²ΠΈΡΡ favicon
- ΠΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ BASE_DOMAIN ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ
- Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΡΠ΅ΡΡΠΎΠ²
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π³Π΄Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΊΠΎΠ΄ ΡΠΌΠΎΠ΄Π·ΠΈ)
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΅ΠΊΠΈΠ½Π³ ΠΏΠΎΡΠ΅ΡΠ°Π΅ΠΌΠΎΡΡΠΈ
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΈΡΠΌΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ·ΡΠΊΠΎΠ²
- ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΡ message.clj (Π²ΡΠ½Π΅ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΌΡΠ»ΡΡΠΈΠΌΠ΅ΡΠΎΠ΄Ρ)
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΡ 404
- ΠΠ°ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HugSQL Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΠ
- Π‘Π΄Π΅Π»Π°ΡΡ
/logout
ΠΊΠ°ΠΊ POST-ΠΌΠ΅ΡΠΎΠ΄ - Π‘Π΄Π΅Π»Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΡΡ (Π»ΠΎΠ³ΠΈΠ½-ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ, Π»ΠΎΠ³Π°ΡΡ, ΠΌΠΎΠΈ ΡΡΡΠ»ΠΊΠΈ) Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ / Π½Π΅-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ )
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ΅ΡΠ΅Π· re-frame
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉ ΡΠ΅ΡΠ΅Π· Kubernetes?
- ΠΠ΅ΡΠ΅Π΅Ρ Π°ΡΡ Π½Π° deps.edn