// DØMIR
Dømir um verkætlanir og proof-of-concepts.
Vitja mína Codeberg síðu fyri alment atkomuligum repositories.
Allar hesar smáverkætlanir/pocs eru hýstar á einum gomlum Lenovo kassa heima hjá mær saman við nógvum privatum whitelistaðum tingum. Framman fyri hendan er ein Ubuntu VPS sum bert virkar sum ein føst IP addressa og Reverse Proxy via Caddy til Lenovo kassan gjøgnum eina sikra Wireguard protokoll.
- Lýsing
-
RAGGo er ein sjálvhýst applikatión ið indekserar tíni skjøl og myndir, og gevur tær møguleika at samrøða við tey gjøgnum natúrligt mál. Alt kann koyra á einum Linux servara, á egnum KT-infrakervi. Dátur fara ongantíð av tínum servara, fara ongantíð gjøgnum triðjaparts cloud-veitara, og er fullkomiliga í tínum hondum. Har eru ongar ókendar mánaðarligar API rokningar ella fjaldar lisensur. Tá RAGGo er sett upp, koyrir skipanin uttan eyka kostnað.
RAGGo tekur ímóti fylgjandi skjølformat:
pdf, docx, odt, xlsx, pptx, html, htm, epub, txt og md
RAGGo tekur ímóti fylgjandi myndaformat:
png, jpg, jpeg, webp og gifSkjøl við strukturi (so sum pdf, docx, odt, xlsx, pptx, html, htm, epub) verða semantiskt greinað og varðveita síðutal, teksthøvd, tabellir og listar sum metadata, ið varðveitir samanhangin. Flatar tekstfílur og markdownfílur verða býttar upp í semantikvitandi stykkir, og ikki skildar mitt í einum setningi. Myndir eru prosesseraðar við hjálp av vítlíkis-"captioning" sum lýsa innihaldið, og eru síðani indekseraðar saman við øðrum skjølum, soleðis at visuellar dátur eisini verða leitanarførar gjøgnum natúrligt mál.
Bygt á opnum amboðum sum Go, PostgreSQL við pgvector og Ollama, er uppsetingin sera einføld og lætt at endurskapa og endurskoða. Ein websíða veitir kjatt og skjalastýring. Hjá fyritøkum og stovnum, ið umsita stór skjalasøvn, skapar hetta ein leitanarføran vitanargrunn, sum framvegis er lættur at umsita við kendum kostnaði, og uttan at vera treytað av uttanhýsis vitlíkisveitarum.
- Leiðbeining
-
Rita inn - Fyri at nýta RAGGo skalt tú rita inn við at trýsta á leinkjuna niðanfyri. brúkaranavn: raggo loyniorð: oKfE!DHecTgJM9zPjjgfqL#mt59#n5G4C3gsjF4f
Leggja skjøl afturat - Trýst á + knøttin undir innskrivingarteiginum. Vel eina stuðlaða fílu (PDF, DOCX, ODT, XLSX, PPTX, HTML, EPUB, TXT ella Markdown). Fílan verður sjálvvirkandi greinað og indekserað, og er leitanarfør fá sekund seinni. Tú fært eina váttan, ið vísir fílunavnið og hvussu nógvir tekstbitar vórðu gjørdir.
Leggja myndir afturat - Trýst á myndaknøttin við síðuna av + knøttinum. Vel eina myndafílu (PNG, JPG, JPEG, WEBP ella GIF) og skriva eina stutta lýsing av myndini. Lýsingin ger myndina leitanarføra. Er eitt sjónarmodell sett upp, kanst tú trýsta á Auto-caption fyri sjálvvirkandi at gera eina lýsing.
Seta spurningar - Skriva spurningin í innskrivingarteigin og trýst á Enter (nýt Shift+Enter fyri linjuskifti). RAGGo finnur mest viðkomandi tekstbrotini úr teimum indekseraðu skjølunum og myndunum og ger síðani eitt svar, ið byggir á hetta tilfarið. Hvørt svar vísir, hvør fíla er kelda og eventuelt síðutal um strukturera skjal.
Síggja indekseraðar fílur - Trýst á Documents í valmyndini fyri at síggja eina dagførda talvu yvir alt innihaldið í savninum — fílunøvn, fílusløg, tal av tekstbitum, nær tilfarið varð lisið inn, og bygnaðareyðkenni sum tabellir og listar. Listin verður dagførdur sjálvvirkandi.
Skifta tema - Trýst á runda knøttin niðast í høgra horni fyri at skifta millum ljóst og myrkt (Tokyo Night) tema.
- Tøkni
-
▸ Go - við triðjaparts libraries tsawler/tabula, openai/openai-go, fsnotify/fsnotify
▸ Postgres 18 + pgvector - dátugrunn backend við postgres vector store
▸ Taskfile - brúkt til build, deployment og orchestration-kommandoir.
▸ Ollama - inference servari
▸ Vitlíkissløg - samrøðu-modell sum høvuðs chat interface. Embedding-model sum konverterar tekststykkir til tøl fyri líkheitsleiting. multimodalt modell sum tekur myndir sum input og gevur tekst sum output. Umskrivari sum skrivar fyrrverandi brúkarafyrispurningar til ein fyrispurning
▸ Vitlíkismodellir - gemma4, nomic-embed-text
▸ CSS
▸ HTML
▸ JavaScript
- Keldu-kota
- Privat
- Brúkaranavn
- raggo
- Loyniorð
- oKfE!DHecTgJM9zPjjgfqL#mt59#n5G4C3gsjF4f
- Leinkja
- RAGGo
- Lýsing
-
Web app til tímaregistrering og faktura-generering til pdf. Eg nýti sjálvur hesa app í mínum dagliga starvi sum ráðgevi. Eg bygdi hana, tí har er eingin app sum ger akkurát hettar á føroyska marknaðinum. Harútyvir eri eg eisini ov gírigur til at gjalda onkra fyritøku eitt mánaðarligt gjald fyri hettar. Hendan prototypan koyrir bert í browsaranum uttan nakran backend, so allar dátur verða strikaðar hvønn 10. minutt.
Annars, í tí versiónini eg nýti, er ein backend API tilknýtt ein VPS sum reverse proxyar kall gjøgnum Caddy til mín heimaservara har ein SQLite dátugrunnur tekur ímóti øllum CRUD operatiónum. Hendan versiónin er sjálvandi IP Whitelista, so tú kanst ikki nýta hana ;-)
- Leiðbeining
-
1. Tøppa inn kunning um tína fyritøku á [SETTINGS] síðuni (har eru default values um tú ikki tímur hettar)
2. Á [TIMER] síðuni stovna Company sum er tann fyritøkan tú skalt arbeiða fyri. Tøppa inn navn, addressa, teldupost, telefonnummar og standard tímaprís. Alt hettar verður nýtt til at rokna endaligan prís út og sum kunning til faktura-generering
3. Stovna síðan eina Assignment sum er ein størri klumpur av arbeiði. Tað kann til dømis verða Menna backend fyri nýggju heimasíðuni hjá example.com. Eitt Company kann hava fleiri Assignments. Her kanst tú eisini geva eina longri lýsing av uppgávuni og ein serstakan prís fyri akkurát hesa Assignment. Um eingin prísur verður givin, er tað standard prísurin hjá tí júst stovnaðu fyritøkuni.
4. Stovna síðani eina Task. Hettar er ein sub-klumpur av arbeiði undir einari Assignment. Ein Assignment kann eiga nógvar Tasks. So vit stovna eina Task ið kallast Menna GET customer endpoint ella okkurt.
5. Herfrá kanst tú so velja at knýta tíð at einari Task, antin við at starta Timer, ella við at tøppa inn eina Manual entry.
6. Nú er uppgávan liðug, og tú skalt senda faktura til Company. Trýst á Generate invoice (PDF). Á hesari síðuni sært tú tímar, upphædd og prís. Skriva í Comment eina stutta lýsing av hesari Assignment. Her kanst tú eisini knýta á fakturalinjur ið ikki eru tímar men onkur eind. So tú kanst t.d. seta ein routara á til 500 kr. stk ella okkurt. Ná, men tá tú ert klár/ur trýst á Generate PDF, og tada, ein smuk faktura, klár til at senda til Company. Pyha hettar var nógv, men royn tað?
- Tøkni
-
▸ Go - web servarin, backend kota, templating language osfr.
▸ HTMX - nýtt til at gera CRUD operatiónir
▸ GNU Make - nýtt til at automatisera bygna av binary og deployment til remote servara via ssh við einari kommando.
▸ CSS
▸ HTML
▸ JavaScript
▸ SQLite
- Keldu-kota
- Privat
- Leinkja
- zeitkort
- Lýsing
-
Eg havi leingi viljað gjørt eina verkætlan, ið stroymir hendingar úr einum dátugrunni til ein event-consumer. Altso við tí, ein kallar CDC (Change Data Capture), har broytingar verða tiknar úr transaktiónsloggi ella replication-mekanismuni hjá dátugrunninum og sendar víðari til ein consumer.
CDC/log-based replication byggir á, at dátugrunnurin longu skrásetir broytingar fyri at kunna gera recovery og replication. Í PostgreSQL er hetta t.d. WAL og logical replication/logical decoding, í MariaDB/MySQL er tað binlog, og í SQL Server finst CDC sum ein innbygd skipan. Hesir mekanismir kunnu fanga INSERT, UPDATE og DELETE í talvum, og tí er hetta ein effektivur máti at stroyma broytingar úr einum dátugrunni, uttan at forritið sjálvt skal senda eyka eventir.
Eg haldi, at Debezium er ein av fremstu loysnunum, tá tað snýr seg um at stroyma dátur millum ein dátugrunn og ein consumer, so sum Apache Kafka ella NATS. Debezium kann lesa broytingar úr dátugrunninum og senda tær víðari sum events við metadata. Tað er skrivað í Java og er lætt at deploya sum ein container á einum Linux-servara.
Ofta havi eg roksast við Apache Kafka, og ofta standi eg eftir uttan úrslit og við ilt í høvdinum eftir ein langan dag við trial and error. Tí fór eg hesa ferð at nýta NATS í staðin. NATS er skrivað í Go og er ein binary, ikki sum hatta Kafka-Java-monstrið, sum hevur túsund flytandi partar.
Ná, men long søga stutt: hetta er ein inventory management-skipan. Inni á síðuni kanst tú gera CUD-operatiónir, sum resultera í SQL DML móti PostgreSQL-dátugrunninum. CDC fangar broytingarnar úr logginum, Debezium sendir broytingina saman við metadata til NATS, og haðani kundu fleiri skipanir subscribað til real-time dátur frá dátugrunninum.
Fyrimunurin við hesum er, at tann operativa skipanin verður decoupled frá downstream-nýtsluni av live-dátum. Inventory-skipanin skal bara gera sítt vanliga arbeiði móti dátugrunninum, meðan aðrar skipanir kunnu brúka broytingarnar uttan at verða bundnar beinleiðis at sjálvari applikatiónini. Tað kundi til dømis verið eitt BI-dashboard, sum vísir live-dátur frá inventory, ella aðrar skipanir og starvsfólk, ið skulu kunna taka avgerðir út frá live operativum dátum.
Í hesum førinum verður data flow bert víst aftur á skermmyndini.
- Leiðbeining
-
Á demo-síðuni sært tú inventory-skipanina vinstrumegin og CDC-trace høgrumegin. Vel eina vøru og ger eina broyting, til dømis sell, restock, rename/move ella delete. Tá broytingin er gjørd, sært tú høgrumegin, hvussu hon ferðast gjøgnum flowið: PostgreSQL -> Debezium -> NATS JetStream -> browser. Niðast sært tú sjálvt eventið sum raw JSON og audit trail, so tú kanst síggja bæði støðuna áðrenn og aftaná broytingina.
- Tøkni
-
▸ Go - web server, API-endpoints, NATS-consumer og SSE event-stream.
▸ PostgreSQL - inventory-dátugrunnur við logical replication virkja.
▸ Debezium Server - fangar broytingar úr PostgreSQL og publishar tær sum events.
▸ NATS JetStream - event streaming-lag millum Debezium og Go-backendan.
▸ Taskfile - brúkt til build, deployment og orchestration-kommandoir.
▸ Podman - koyrir development- og production-infrastruktur sum containers (PostgreSQL, NATS, Debezium).
▸ Server-Sent Events - stroymir CDC-events live frá Go-backendinum til kagan.
▸ HTML
▸ CSS
▸ JavaScript
- Keldu-kota
- Codeberg
- Leinkja
- inventory-fló
- Lýsing
-
Web API til at heinta dátur frá backend, skrivað í Go. Hettar er eitt tonkt dømi um registrering av húsligan harðskap til eitt API endpoint, bæði sum registreringstól og til seinni greining.
Verður deploya sum bert 1 binary uttan nakrar dependencies ella runtime environment. Allur front end er embeddaður í binary. Verkætlanin brúkar bert Go standard library, onga eksterna dependency.
- Leiðbeining
-
Sí tekniska vegleiðing á leinkjuni niðanfyri.
- Tøkni
-
▸ Go - 100% Golang std lib: html/template, net/http, flag, crypto
▸ Taskfile - processautomatisering, builds og deployment
▸ Reflex - skjót endurbygging og start av binary við broyting av fílum í repos
▸ Rsync - til at sync'a til produktión
▸ CSS
▸ HTML
▸ JavaScript
- Keldu-kota
- Codeberg repos
- Leinkja
- go-api
- Lýsing
-
Web app ment fyri Landsverk. Brúkt til jobmatch og líknandi.
Ókeypis hýsing og deployment til GitHub Pages við Hugo/Go sum static site generator ið er integrerað við CI/CD pipeline. Eitt PR inn á main dagførir alla síðuna.
- Leiðbeining
- Finn út av hvør profilur tú ert, við at tøppa teg ígjøgnum starvskumpassi.
- Tøkni
-
▸ Go - Hugo nýtir Go http/Template sum templating-mál
▸ Hugo - Static Site Generator skrivaður í Go
▸ JavaScript - quiz logikkur
▸ CSS
▸ HTML
- Keldu-kota
- Github repos
- Leinkja
- Starvskumpass leinkja
- Lýsing
-
Eitt simpult POC av einari kjattfunktión skriva í Rust. Rust trøllbindur meg, so eg vildi royna at byggja og deploya eina Rust-verkætlan.
Vit hava back office har onkur supportari bíðar eftir boðum, meðan hann etur kips.
So skriva tveir brúkarar inn á kjattin, og supportarin kann kjatta við báðar brúkarnar í senn.
Fyri framman ætli eg mær at knýta back office til ein backend, har supportari kann knýta metadata at kjattum, so at mann í framtíðini kann gera kvantitativar greiningar. Eisini um mann goymir samrøðurnar kann mann gera sentimentgreiningar ella kvalitativar greiningar.
Men eg havi børn og eitt hús og starv eg skal taka mær av, so...
- Leiðbeining
-
Hetta POC slettar alt data/kjattar 3. hvørt minutt, og hevur rate limiting uppa req/resp, so mín heimaservari ikki verður smildraður.
Far inn á leinkjuna niðanfyri. Vel fyrst supportaran, far aftur til høvuðssíðuna í nýggjum fana, og vel síðan brúkara.
Gev brúkaran okkurt navn og kjatturin byrjar. skriva okkurt og supportarin sær at ein samrøða byrjar. Nú kanst tú kjatta við teg sjálvan.
Men hvat um tú vilt kjatta enn meira við teg sjálvan? Ger ein nýggjan brúkara og nú hevur supportarin tveir kjattar opnar.
- Tøkni
-
-
▸ Axum - web framework í Rust. tekur sær av routing og middleware og alt hattar har. Umleið tað sama sum Gin í Golang og fastapi í Python
▸ Tokio - tað man altíð brúkar tá man skal hava async await í Rust
▸ Serde - serialisering/deserialisering frá JSON til Rust structs
▸ GNU Make - nýtt til at automatisera bygna av binary og deployment til remote servara via ssh við einari kommando.
▸ CSS
▸ HTML
▸ JavaScript
- Keldu-kota
- Privat
- Leinkja
- rs-chat
- Lýsing
-
Hendan heimasíðan er hýst á einum Lenovo kassa heima hjá mær.
- Leiðbeining
- N/A
- Tøkni
-
▸ Go - 100% Golang std lib, burtursæð frá einum rímiliga standard dot-env lesara joho/godotenv
▸ Taskfile - processautomatisering, builds og deployment
▸ Reflex - skjót endurbygging og start av binary við broyting av fílum í repos
▸ Rsync - til at sync'a til produktión
▸ CSS
▸ HTML
▸ JavaScript
- Keldu-kota
- Privat
- Leinkja
- fló.fo