Skip to content

only-dpp/coreops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoreOps

FastAPI Celery Redis PostgreSQL Docker Python

CoreOps é um sistema leve de monitoramento de uptime construido com FastAPI, Celery, Redis e PostgresQL.

O projeto inclui um dashboard web simples para gerenciar monitores, visualizar histórico de execuções e controlar o comportamento dos alertas


Features

  • Monitoramente de endpoints HTTP
  • Alerta por Email com templates HTML
  • Alerta via webhook do Discord
  • Pausar / retomar monitores
  • Dashboard com atualizaçôes em tempo real
  • Histórico de execução por monitor
  • Autenticação com login baseado em sessão
  • Proteção CSRF
  • Processamento em bachground com Celery
  • Execução agendada com Celery Beat
  • Ambiente de desenvolvimento baseado em docker

Screenshots

image image image image

Tech Stack

Backend

  • FastAPI
  • SQLAlchemy
  • Alembic
  • Celery
  • Redis
  • PostgreSQL

Frontend

  • Jinja2 template
  • HTMX
  • Vanilla CSS

Architecture

User → FastAPI API → PostgreSQL │ Celery Worker │ Celery Beat → Scheduler │ Redis (broker)


Componentes

API

  • Aplicação FastAPI
  • Autenticação
  • Renderização do dashboard
  • Criação e gerenciamento de monitores

Worker

  • Executa jobs de monitoramento
  • Envia alertas

Beat

  • Scheduler que dispara verificações

Redis

  • Broker de mensagens para Celery

postgreSQL

  • Armazena monitores
  • Armazena histórico de execuções

Getting Started

1. Clone o repositório

git clone https://github.com/only-dpp/coreops.git
cd coreops

2. Crie o arquivo de ambiente

cp .env.example .env

Edite o .env e configure seus valores.

Campos importantes:

  • SMTP_USER
  • SMTP_PASS
  • ADMIN_EMAIL
  • ADMIN_PASSWORD

3. Suba os serviços

docker compose up -d --build

Isso iniciará:

  • API
  • WORKER
  • Beat Scheduler
  • Redis
  • postgreSQL

4. Rode as migrações

docker compose exec api alembic upgrade head

5. Acesse o dashboard

Abra:

http://localhost:8000/login

Login com as credenciais definidas em .env

Criando um Monitor

No dashboard

  1. Clique em New Monitor
  2. Informe:
    • Nome
    • URL
    • Intervalo
    • Canal de alerta
  3. Salve

O monitor começará a rodar automaticamente.

alert Channels

Discord

Informe a URL do webhook:

https://discord.com/api/webhook/...

Email

Configure o SMTP no .env

SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password

Project Structure

coreops
│
├── app
│ ├── api
│ ├── core
│ ├── db
│ ├── templates
│ ├── static
│ └── web
│
├── docker-compose.yml
├── pyproject.toml
├── alembic.ini
└── .env.example

Security Notes

Este projeto inclui camadas básicas de segurança:

  • Autenticação baseada em sessão
  • Hashing de senhas
  • Proteção CSRF
  • Configuração via variáveis de ambiente

License

MIT License

About

Sistema simples de monitoramento de disponibilidade com FastAPI, Celery, Redis e PostgreSQL.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors