{"id":23416458,"url":"https://github.com/tedwon/quokka","last_synced_at":"2026-03-20T01:21:27.434Z","repository":{"id":137512330,"uuid":"582919143","full_name":"tedwon/quokka","owner":"tedwon","description":"Simple Memo App based on Quarkus with Java and React Next.js with TypeScript","archived":false,"fork":false,"pushed_at":"2026-01-28T23:43:47.000Z","size":1652,"stargazers_count":1,"open_issues_count":52,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-29T14:37:37.279Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tedwon.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-12-28T08:29:16.000Z","updated_at":"2024-01-04T00:12:17.000Z","dependencies_parsed_at":"2023-10-03T13:49:38.162Z","dependency_job_id":"bc495272-4636-48ef-899c-d661aa03ed7d","html_url":"https://github.com/tedwon/quokka","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/tedwon/quokka","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedwon%2Fquokka","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedwon%2Fquokka/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedwon%2Fquokka/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedwon%2Fquokka/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tedwon","download_url":"https://codeload.github.com/tedwon/quokka/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tedwon%2Fquokka/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29370548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-22T22:14:47.585Z","updated_at":"2026-02-12T15:34:04.372Z","avatar_url":"https://github.com/tedwon.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":":author: Ted Won\n:email: iamtedwon@gmail.com\n:toc: left\n:toclevels: 1\n:icons: font\n:idprefix:\n:idseparator: -\n\n\n= https://github.com/tedwon/quokka[Quokka Project]\n\n\n== https://github.com/tedwon/quokka[Quokka Project]\n\nhttps://github.com/tedwon/quokka[Quokka] is a simple Memo App.\n\nhttps://github.com/tedwon/quokka[Quokka] is implemented in Quarkus with Java for backend and React Next.js with TypeScript for frontend.\n\n\n=== https://github.com/tedwon/quokka/tree/main/quokka-backend[Quokka Backend Project]\n\nhttps://github.com/tedwon/quokka/tree/main/quokka-backend[Quokka Backend project] is built on https://quarkus.io/[Quarkus].\n\n\n=== https://github.com/tedwon/quokka/tree/main/quokka-frontend[Quokka Frontend Project]\n\n\n\n\n=== Quokka DB\nQuokka DB is on https://hub.docker.com/_/postgres[PostgreSQL]. https://hub.docker.com/_/postgres[PostgreSQL] provides the underlying database.\n\n\n== Start Quokka\n\n=== Start Quokka with Docker Compose\n\n[source,bash,options=\"nowrap\"]\n----\ndocker-compose -f docker-compose.yml up -d\n----\n\n\n==== Stop Quokka with Docker Compose\n\n[source,bash,options=\"nowrap\"]\n----\ndocker-compose -f docker-compose.yml down\n----\n\n\n=== Start Quokka with Docker\n\n[source,bash,options=\"nowrap\"]\n----\ndocker network create quokka_net\n\nsudo mkdir /var/quokka_db_data\nsudo chown -R \u003cuser\u003e:\u003cgroup\u003e /var/quokka_db_data\nls -al /var/quokka_db_data\ndocker run --rm=true -itd \\\n           --name quokka-db \\\n           -v /var/quokka_db_data:/var/lib/postgresql/data \\\n           -e TZ=Australia/Brisbane \\\n           -e POSTGRES_USER=quokka \\\n           -e POSTGRES_PASSWORD=quokka \\\n           -e POSTGRES_DB=quokka_db \\\n           -p 5432:5432 \\\n           --network quokka_net \\\nquay.io/debezium/postgres:15\n#postgres:latest\n\n\n\ncd quokka-backend\n./mvnw clean package\ndocker build -f src/main/docker/Dockerfile.jvm -t tedwon/quokka-backend:latest .\ndocker run -i --rm -e TZ=Australia/Brisbane -p 2402:2402 --network quokka_net tedwon/quokka-backend:latest\n\ndocker run -i --rm -p 2402:2402 --network quokka_net tedwon/quokka-backend:latest\n\ncd ~/quokka/quokka-frontend\npodman build -t tedwon/quokka-frontend:latest .\ndocker build -t tedwon/quokka-frontend:latest .\ndocker run -i -rm -e TZ=Australia/Brisbane -p 3000:3000 --network quokka_net tedwon/quokka-frontend:latest\n\n# Using OpenID Connect (OIDC) and Keycloak to Centralize Authorization - Quarkus\n# https://quarkus.io/guides/security-keycloak-authorization\n#docker run --rm=true -itd \\\n#           --name quokka-keycloak \\\n#           -e KEYCLOAK_ADMIN=admin \\\n#\t\t   -e KEYCLOAK_ADMIN_PASSWORD=admin \\\n#           -p 8088:8088 \\\n#           --network quokka_net \\\n#quay.io/keycloak/keycloak:latest start-dev\ndocker run --rm=true -it \\\n           --name quokka-keycloak \\\n           --network quokka_net \\\n           -e TZ=Australia/Brisbane \\\n\t\t   -e KEYCLOAK_ADMIN=quokka \\\n\t\t   -e KEYCLOAK_ADMIN_PASSWORD=quokka \\\n\t\t   -p 8443:8443 \\\n\t\t   -v \"$(pwd)\"/quokka-backend/config/keycloak-keystore.jks:/etc/keycloak-keystore.jks \\\n\t\t   -v \"$(pwd)\"/quokka-backend/config/quarkus-realm.json:/opt/keycloak/data/import/realm.json \\\n\t\t   quay.io/keycloak/keycloak:latest start --import-realm \\\n\t\t   --optimized --hostname-strict=false --https-key-store-file=/etc/keycloak-keystore.jks\n\n----\n\n== Develop Quokka\n\n=== Push Quokka projects to Docker Hub\n\n* https://hub.docker.com/repository/docker/tedwon/quokka-backend\n* https://hub.docker.com/repository/docker/tedwon/quokka-backend\n\n[source,bash,options=\"nowrap\"]\n----\ndocker push tedwon/quokka-backend:latest\n\ndocker push tedwon/quokka-frontend:latest\n----\n\n=== Quarkus Dev UI\n\nhttp://localhost:2402/q/dev/\n\n\n=== Run Debezium\n\n[source,bash,options=\"nowrap\"]\n----\ndocker run -it --rm --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 quay.io/debezium/zookeeper:2.1\n\ndocker run -it --rm --name kafka -p 9092:9092 --link zookeeper:zookeeper quay.io/debezium/kafka:2.1\n\ndocker run --rm=true -it \\\n           --name debezium-quokka-db \\\n           --hostname quokka-db \\\n           -v /var/quokka_db_data:/var/lib/postgresql/data \\\n           -e TZ=Australia/Brisbane \\\n           -e POSTGRES_USER=quokka \\\n           -e POSTGRES_PASSWORD=quokka \\\n           -e POSTGRES_DB=quokka_db \\\n           -p 5432:5432 \\\nquay.io/debezium/postgres:15\n\ndocker run -it --rm --name debezium-quokka-db_psql_client \\\n--link debezium-quokka-db:debezium-quokka-db \\\n-e PGOPTIONS=\"--search_path=quokka\" \\\n-e PGPASSWORD=quokka quay.io/debezium/postgres:15 \\\npsql -p 5432 -h quokka_db quokka_db -U quokka\n\n# docker run -it --rm --name mysqlterm --link mysql --rm mysql:8.0 sh -c 'exec mysql -h\"$MYSQL_PORT_3306_TCP_ADDR\" -P\"$MYSQL_PORT_3306_TCP_PORT\" -uroot -p\"$MYSQL_ENV_MYSQL_ROOT_PASSWORD\"'\n\ndocker run -it --rm --name connect -p 8083:8083 -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs \\\n-e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses \\\n--link kafka:kafka --link debezium-quokka-db:debezium-quokka-db quay.io/debezium/connect:2.1\n\n\ncurl -H \"Accept:application/json\" localhost:8083/\nhttp://localhost:8083/\n\ncurl -H \"Accept:application/json\" localhost:8083/connectors/\nhttp://localhost:8083/connectors/\n\n\ncurl -i -X GET -H \"Accept:application/json\" localhost:8083/connectors/inventory-connector\nhttp://localhost:8083/connectors/quokka-connector\n\ndocker run -it --rm --name watcher --link zookeeper:zookeeper --link kafka:kafka quay.io/debezium/kafka:2.1 watch-topic -a -k quokka.quokka_db.Memo\n----\n\n\n==== Start Zookeeper\n\n[source,bash,options=\"nowrap\"]\n----\ndocker network create debezium-net\ndocker run -it --rm --name zookeeper -e TZ=Australia/Brisbane --network debezium-net -p 2181:2181 -p 2888:2888 -p 3888:3888 quay.io/debezium/zookeeper:2.1\n----\n\n\n==== Start Kafka\n\n[source,bash,options=\"nowrap\"]\n----\ndocker run -it --rm --name kafka -e TZ=Australia/Brisbane --network debezium-net -p 9092:9092 quay.io/debezium/kafka:2.1\n\n----\n\n==== Start a PostgreSQL database\n\n[source,bash,options=\"nowrap\"]\n----\ndocker stop quokka-db\ndocker run --rm=true -it \\\n           --name debezium-quokka-db \\\n           -v /var/quokka_db_data:/var/lib/postgresql/data \\\n           -e TZ=Australia/Brisbane \\\n           -e POSTGRES_USER=quokka \\\n           -e POSTGRES_PASSWORD=quokka \\\n           -e POSTGRES_DB=quokka_db \\\n           -p 5432:5432 \\\nquay.io/debezium/postgres:15\n----\n\n==== Start a PostgreSQL command line client\n\n[source,bash,options=\"nowrap\"]\n----\n\n----\n\n==== Start Kafka Connect\n\n[source,bash,options=\"nowrap\"]\n----\n\ndocker run -it --rm --name connect -p 8083:8083 -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs \\\n-e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses \\\n--link kafka:kafka --link debezium-quokka-db:debezium-quokka-db quay.io/debezium/connect:2.1\n\n----\n\n\n==== Deploying the PostgreSQL connector\n\n[source,bash,options=\"nowrap\"]\n----\n{\n  \"name\": \"quokka-connector\",\n  \"config\": {\n    \"connector.class\": \"io.debezium.connector.postgresql.PostgresConnector\",\n    \"tasks.max\": \"1\",\n    \"database.hostname\": \"127.0.0.1\",\n    \"database.port\": \"5432\",\n    \"database.user\": \"quokka\",\n    \"database.password\": \"quokka\",\n    \"database.dbname\": \"quokka_db\",\n    \"database.server.id\": \"26\",\n    \"topic.prefix\": \"quokka\",\n    \"table.include.list\": \"public.quokka\",\n    \"database.include.list\": \"quokka\",\n    \"schema.history.internal.kafka.bootstrap.servers\": \"kafka:9092\",\n    \"schema.history.internal.kafka.topic\": \"schema-changes.quokka\"\n  }\n}\n----\n\n\n[source,bash,options=\"nowrap\"]\n----\ncurl -i -X POST -H \"Accept:application/json\" -H \"Content-Type:application/json\" localhost:8083/connectors/ -d '{\"name\":\"quokka-connector\",\"config\":{\"connector.class\":\"io.debezium.connector.postgresql.PostgresConnector\",\"tasks.max\":\"1\",\"database.hostname\":\"127.0.0.1\",\"database.port\":\"5432\",\"database.user\":\"quokka\",\"database.password\":\"quokka\",\"database.dbname\":\"quokka_db\",\"database.server.id\":\"26\",\"topic.prefix\":\"quokka\",\"table.include.list\":\"public.quokka\",\"database.include.list\":\"quokka\",\"schema.history.internal.kafka.bootstrap.servers\":\"kafka:9092\",\"schema.history.internal.kafka.topic\":\"schema-changes.quokka\"}}'\n\ncurl -i -X POST -H \"Accept:application/json\" -H \"Content-Type:application/json\" localhost:8083/connectors/ -d '{\n  \"name\": \"quokka-connector\",\n  \"config\": {\n    \"connector.class\": \"io.debezium.connector.postgresql.PostgresConnector\",\n    \"tasks.max\": \"1\",\n    \"database.hostname\": \"debezium-quokka-db\",\n    \"database.port\": \"5432\",\n    \"database.user\": \"quokka\",\n    \"database.password\": \"quokka\",\n    \"database.dbname\": \"quokka_db\",\n    \"database.server.id\": \"26\",\n    \"topic.prefix\": \"quokka\",\n    \"table.include.list\": \"public.quokka\",\n    \"database.include.list\": \"quokka\",\n    \"schema.history.internal.kafka.bootstrap.servers\": \"kafka:9092\",\n    \"schema.history.internal.kafka.topic\": \"schema-changes.quokka\"\n  }\n}'\n----","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftedwon%2Fquokka","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftedwon%2Fquokka","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftedwon%2Fquokka/lists"}