All Projects → athul → jimbru

athul / jimbru

Licence: MIT license
A lightweight analytics server with FastAPI and deta.sh Base as DB. A glorified hit-counter of sorts 😁

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to jimbru

wallpaper-api
An api which can use different sites to scrape images and serve them through API
Stars: ✭ 18 (-58.14%)
Mutual labels:  fastapi, deta
yarc
No description or website provided.
Stars: ✭ 109 (+153.49%)
Mutual labels:  fastapi, deta
node-crudapi-ts
CRUD boilerplate for create Node Restful API's with Express Framework and Sequelize ORM written in Typescript.
Stars: ✭ 41 (-4.65%)
Mutual labels:  nosql
book-code
The code belonging to O'Reilly's eXist book
Stars: ✭ 19 (-55.81%)
Mutual labels:  nosql
huskydb
HuskyDB - Windows Native C++ NoSQL Database
Stars: ✭ 27 (-37.21%)
Mutual labels:  nosql
Verdant Search
用python+fastapi实现的搜索引擎
Stars: ✭ 13 (-69.77%)
Mutual labels:  fastapi
doclite
PHP NoSQL database and document store
Stars: ✭ 57 (+32.56%)
Mutual labels:  nosql
database
Key-Value/Document store database library with btree and ARTree indexing methods, SSN-MVCC concurrency
Stars: ✭ 67 (+55.81%)
Mutual labels:  nosql
mira
A place for notes, but for the people I keep in touch with
Stars: ✭ 18 (-58.14%)
Mutual labels:  deta
maricutodb
PHP Flat File Database Manager
Stars: ✭ 23 (-46.51%)
Mutual labels:  nosql
ark-invest-api
📈 API for tracking holdings and trades of ARK Invest funds
Stars: ✭ 49 (+13.95%)
Mutual labels:  fastapi
fastapi-csv
🏗️ Create APIs from CSV files within seconds, using fastapi
Stars: ✭ 46 (+6.98%)
Mutual labels:  fastapi
soosyze
🌠 Soosyze CMS is a minimalist content management system in PHP, without database to create and manage your website easily. https://soosyze.com
Stars: ✭ 39 (-9.3%)
Mutual labels:  nosql
MongoDB-3-Succinctly
This is the companion repo for MongoDB 3 Succinctly by Zoran Maksimovic. Published by Syncfusion.
Stars: ✭ 15 (-65.12%)
Mutual labels:  nosql
fastapi-fullstack-boilerplate
A full stack (monolith) boilerplate for FastAPI
Stars: ✭ 92 (+113.95%)
Mutual labels:  fastapi
pocket-cms
☁️ A pocket sized CMS written for nodejs
Stars: ✭ 13 (-69.77%)
Mutual labels:  nosql
timvt
PostGIS based Vector Tile server.
Stars: ✭ 113 (+162.79%)
Mutual labels:  fastapi
2017-highload-kv
Курсовой проект 2017 года курса "Проектирование высоконагруженных систем"
Stars: ✭ 26 (-39.53%)
Mutual labels:  nosql
fasthtmx
FastAPI-HTMX Demo Project
Stars: ✭ 62 (+44.19%)
Mutual labels:  fastapi
random-dose-of-knowledge
Using the latest Software Engineering practices to create a modern and simple app.
Stars: ✭ 26 (-39.53%)
Mutual labels:  fastapi

IMPORTANT: There seems to be an error in deploying this, planning for a rewrite of the whole.

Jimbru

Jimbru is an Privacy Oriented web analytics Server which is built with FastAPI and Deta Base as DB.

Jimbru is heavily inspired by Shynet which is also an Analytics server built with Django.

Not for Production Level use. It's hacky to the core. I made it for a Personal Use and doesn't have any fancy features.

Features

  • Lightweight
  • Privacy Oriented
  • Easily Deployable (on deta.sh)
  • 6 lines of JS code gets the current URL, referrer and load time.
  • Charts with Frappe Charts 📊
  • Jinja2 Templating and Tailwind CSS for Frontend
  • Cookie based Authentication
  • User OS and device from user-agent header
  • user location and network from user ip header

Not Included Features

  • Caching
  • Bounce rate
  • Session Time
  • Unique Hits

Demo

Demo Gif

Deploying

Before deploying you need to get some Credentials

Prep Work

  • Signup for an account in https://deta.sh

  • Create a new Project

  • Get the Project Key and save it in the .env file as below

  • Install the Deta cli. This is for deploying to Deta.

  • Create a .env file inside the app/routes directory with the following keys

    TITLE=<title of the site>
    DOMAIN=<domain of the deployed server>
    PKEY=<Deta Project Key>
    PNAME=<Deta Base DB Name>
    SECRET_JWT=<Secret for JWT. Get than with→ import os; print(os.urandom(24).hex())>
    USERNAME=<username for authenticating>
    PASSWORD=<password for authenticating>

The PNAME can be anything.


  1. Fork/Clone this Repository
  2. You can run the code locally by installing the dependencies inside the app directory and running uvicorn main:app --reload inside the app directory.
  3. Inside the app directory you can create a new Micro with $ deta new. This will create a new Micro. You will get the domian from the output of the command. Save that domain in the DOMAIN key in the .env file, without a trailing /.
  4. Run $ deta update -e routes/.env to update the environment variables in the micro.
  5. Run $ deta deploy inside the app directory and the code will be deployed.
  6. Profit

Usage

Add a <script> tag for the site

<script src="https://<DOMAIN>/a.js" type="text/javascript"></script>

TODO

  • Caching
  • Better Auth
  • Session Time

LICENSE

MIT

Contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].