Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KoalaData mascot KoalaData

CI Container Support KoalaData Security policy License: MIT

Shareable Chrome Web Store analytics without adding tracking code to an extension.

Live site · Explore dashboards · Security · Contributing

KoalaData imports aggregate CSV reports already available to Chrome Web Store publishers. Known reports are mapped automatically, while custom layouts require an explicit preview before they are committed and presented as a responsive public, unlisted, or private dashboard.

KoalaData: shareable Chrome Web Store analytics

Note

KoalaData currently targets Chrome Web Store publisher exports. It does not scrape store listings, install an analytics SDK, or provide real-time user tracking.

Why KoalaData?

  • No extension SDK, injected script, fingerprinting, or user-level telemetry.
  • Reviewable imports instead of silent metric guesses.
  • Clear separation between flow metrics such as installs and snapshot metrics such as weekly users.
  • Localized Chrome Web Store report recognition with a manual fallback.
  • Public listing and leaderboard moderation.
  • Responsive, accessible charts with CSV and PNG exports.
  • Self-hosted Node.js and SQLite deployment with Docker support.

Supported imports

KoalaData recognizes common report filenames and headers in English, German, French, Spanish, Portuguese, Italian, Dutch, Polish, and Turkish. Additional Japanese, Korean, and Chinese header aliases are supported where the structure is unambiguous.

The parser supports:

  • UTF-8, UTF-8 BOM, UTF-16 LE, and UTF-16 BE;
  • comma, semicolon, and tab delimiters outside quoted cells;
  • localized date, decimal, and thousands-separator formats;
  • installs, uninstalls, weekly users, impressions, store views, ratings, versions, regions, languages, operating systems, and enabled-state reports;
  • duplicate and overlap diagnostics before confirmation.

See CSV import pipeline for the mapping rules.

Privacy and trust model

  • Registration requires a username and password, not an email address.
  • Passwords are stored only as Argon2id hashes.
  • Login uses one essential HTTP-only session cookie; only its SHA-256 token hash is stored server-side.
  • Persisted network addresses are reduced before storage.
  • Raw CSV files remain private to authorized project members.
  • No third-party analytics, advertising scripts, social embeds, or favicon lookups.
  • Public projects and leaderboard participation require separate moderation decisions.

See the live privacy policy, security overview, and repository security policy.

Quick start with Docker Compose

Requirements: Docker Engine with Compose v2.

git clone https://github.com/Shik3i/KoalaData.git
cd KoalaData
cp .env.example .env

On PowerShell, use Copy-Item .env.example .env instead of cp.

Set a unique KOALADATA_ADMIN_PASSWORD with at least 12 characters in .env. Production startup rejects missing passwords and documented placeholders.

docker compose up -d --build
docker compose ps

Open http://localhost:3000. The seeded administrator must change the initial password after first login.

Published container

Versioned images and latest are published to GitHub Container Registry. Semantic Git tags trigger .github/workflows/publish-container.yml; they publish only container images. KoalaData does not use GitHub Releases or distribute application/source archives as release assets.

docker pull ghcr.io/shik3i/koaladata:latest

Use an immutable container tag instead of latest for production deployments:

docker pull ghcr.io/shik3i/koaladata:vX.Y.Z

Configuration

Variable Purpose Default
ORIGIN Public application origin used by SvelteKit security checks http://localhost:3000
PORT Node.js listen port 3000
DATA_DIRECTORY Private uploads and project assets /data in Compose
DATABASE_PATH SQLite database file /data/data.db in .env.example
BACKUP_DIRECTORY Destination for managed SQLite backups /backups in Compose
BODY_SIZE_LIMIT Maximum total HTTP request body; must exceed configured per-file upload limits 64M
KOALADATA_ADMIN_USERNAME Initial administrator username admin
KOALADATA_ADMIN_PASSWORD Required initial production password none
SESSION_MAX_AGE Session lifetime in seconds 2592000

Back up the database, uploaded source files, and project assets together.

HTTPS deployment

Run KoalaData behind a TLS-terminating reverse proxy and set ORIGIN to the exact public HTTPS origin.

data.example.com {
    reverse_proxy localhost:3000
}
ORIGIN=https://data.example.com

Use GET /api/health for container or reverse-proxy health checks. It reports service availability without exposing account or project data.

Backups

Create a consistent SQLite backup from the running container:

docker compose exec app node scripts/backup.cjs

Backups are written to the configured backup volume and snapshots older than seven days are pruned. The application does not schedule this command itself; use a host timer or container scheduler for automatic backups. To restore, stop the application, replace the configured database file with the selected backup, then restart the service.

Local development

Requirements: Node.js 26 and npm.

npm ci
npx drizzle-kit push
npm run dev

The development server is available at http://localhost:5173.

Verification

npm run check
npm run test:unit -- --run
npm run test:e2e
npm run build
npm audit --audit-level=low
docker build --tag koaladata:local .

The CI workflow additionally checks formatting, accessibility, responsive layouts, Lighthouse budgets, and the Docker build.

Project structure

src/routes/             SvelteKit pages and server actions
src/lib/server/         authentication, database, imports, permissions
src/lib/components/     dashboard and visualization components
migrations/             versioned SQLite migrations
docs/                   architecture, import, changelog, security notes
.github/workflows/      CI and GHCR publishing

See architecture for the data model and request flow.

Contributing and support

License

KoalaData is available under the MIT License.

About

Show, share and compare Chrome Web Store statistics.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

Used by

Contributors

Languages