DjangoSIGE 
Sistema Integrado de Gestão Empresarial baseado em Django
Projeto independente open-source desenvolvido em Python 3 no Windows, testado no GNU/Linux e Windows.
Dependências
- Python — 3.12 (definido em
.python-versionepyproject.toml) - Django — 5.2.x (linha LTS,
>=5.2,<5.3) - PostgreSQL — 18 (via Docker) ou compatível
- uv (recomendado) — gerencia o ambiente e as dependências a partir de
pyproject.toml/uv.lock - WeasyPrint — geração de PDF a partir de templates HTML/CSS (substitui o
geraldo, ver issue #142). Em Linux exige as libslibpango-1.0-0,libcairo2,libgdk-pixbuf-2.0-0,libharfbuzz0belibfontconfig1— oDockerfilejá as instala. - PySIGNFe (opcional) — geração de NF-e/NFC-e, comunicação com a SEFAZ, DANFE. Mantém pinadas as versões antigas de
cryptography==2.9.2,pyOpenSSL==17.5.0esignxml==2.5.2, sem as quais a emissão quebra. - apache2 + mod_wsgi (opcional, alternativo ao Docker)
Screenshots
Login

Dashboard

Instalação
- Clone o repositório:
git clone https://github.com/thiagopena/djangoSIGE.git
cd djangoSIGE
Opção A — uv (recomendado)
uv cria o ambiente virtual e instala as
dependências a partir do pyproject.toml/uv.lock em um único passo,
fixando a versão do Python definida em .python-version. Em Linux e
Windows você não precisa instalar nada previamente (nem o Python) —
o próprio uv baixa o interpretador e resolve as dependências a partir
de wheels pré-compilados.
Instale o uv (ver documentação oficial):
# Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Sincronize as dependências (cria .venv automaticamente):
uv sync
A partir daqui, prefixe os comandos manage.py com uv run:
uv run python contrib/env_gen.py
uv run python manage.py migrate
uv run python manage.py createsuperuser
uv run python manage.py runserver
Opção B — pip + venv (alternativa)
Pré-requisitos no Linux (Debian/Ubuntu) — necessários para compilar
extensões nativas (lxml, cryptography):
sudo apt install -y libxml2 gcc python3-dev libxml2-dev libxslt1-dev zlib1g-dev git
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install -y python3.12 python3.12-venv python3.12-dev
Pré-requisitos no Windows:
- Instale o Python 3.12 (marque Add Python to PATH durante o instalador).
- Instale o Git para Windows.
- Algumas dependências nativas (
lxml,cryptography==2.9.2) podem exigir o Microsoft C++ Build Tools caso opipnão encontre um wheel pronto. Se possível, prefira a Opção A (uv), que evita esse passo.
Criar o ambiente:
# Linux / macOS
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Windows (PowerShell)
py -3.12 -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Em seguida, com o .venv ativado:
python contrib/env_gen.py
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
Pós-instalação (ambas as opções)
-
Edite o conteúdo do arquivo djangosige/configs/configs.py.
-
Acesse
http://localhost:8000no navegador.
Popular o banco com dados de exemplo (opcional)
O comando create_data popula o banco com dados realistas em português
(locale pt_BR, com CPF/CNPJ válidos gerados pelo
Faker):
# uv
uv run python manage.py create_data
# pip + venv (com o .venv ativado)
python manage.py create_data
# Docker
docker compose exec gunicorn python manage.py create_data
O que é populado
| App | Modelo / tabela | Default | Observações |
|---|---|---|---|
| auth | User |
3 | Usuários comuns (senha senha123). Superusers/staff são preservados. |
| login | Usuario |
3 | Perfil 1:1 ligado a cada User recém-criado. |
| cadastro | Empresa (+ PessoaJuridica) |
2 | CNPJ, nome fantasia, CNAE, regime tributário. |
| cadastro | Cliente (+ PessoaFisica/PessoaJuridica) |
15 | Mistura PF/PJ aleatória, com limite_de_credito. |
| cadastro | Fornecedor (+ PessoaJuridica) |
8 | Sempre PJ, com ramo de atividade. |
| cadastro | Transportadora (+ PessoaJuridica) |
3 | Sempre PJ. |
| cadastro | Endereco, Telefone, Email, Banco |
1 por pessoa | Criados e amarrados como _padrao de cada pessoa. |
| cadastro | Produto |
25 | Código sequencial PRD00001…, EAN13, NCM, custo/venda coerentes. |
| cadastro | Categoria, Marca, Unidade |
fixo (8/8/6) | Conjunto fixo via get_or_create — nunca duplica. |
Os módulos vendas, compras, estoque, financeiro e fiscal não
são populados pelo comando (envolvem regras tributárias e workflows
mais complexos).
Flags
--clear— apaga todos os dados de exemplo antes de recriar (preserva superusers e staff manualmente criados).--seed N— fixa o seed do Faker para resultados reprodutíveis.--clientes N,--fornecedores N,--produtos N,--empresas N,--transportadoras N,--usuarios N— ajusta cada quantidade individualmente (ver--helppara os defaults).
Exemplo zerando o banco e gerando um conjunto maior:
docker compose exec gunicorn python manage.py create_data \
--clear --clientes 50 --produtos 100
Docker (opcional)
Há também um docker-compose.yml com Postgres 18, Gunicorn e Nginx:
docker compose up -d
docker compose exec gunicorn python manage.py migrate
docker compose exec gunicorn python manage.py createsuperuser
A aplicação fica disponível em http://localhost:8000.
Comandos úteis
Abrir um shell interativo dentro do container da aplicação (atenção: as
flags -it precisam vir antes do nome do container):
docker exec -it djangosige-gunicorn-1 bash
# equivalente via compose:
docker compose exec gunicorn bash
Acompanhar os logs em tempo real (-f = follow, --tail=N limita o
backlog inicial):
# todos os servicos
docker compose logs -f
# apenas o gunicorn (com as ultimas 100 linhas)
docker compose logs -f --tail=100 gunicorn
# equivalente sem compose
docker logs -f djangosige-gunicorn-1
Outros atalhos úteis:
docker compose ps # status dos containers
docker compose restart gunicorn
docker compose down # derruba o stack (preserva volumes)
Implementações
- Cadastro de produtos, clientes, empresas, fornecedores e transportadoras
- Login/Logout
- Criação de perfil para cada usuário.
- Definição de permissões para usuários.
- Criação e geração de PDF para orçamentos e pedidos de compra/venda
- Módulo financeiro (Plano de Contas, Fluxo de Caixa e Lançamentos)
- Módulo para controle de estoque
- Módulo fiscal:
- Geração e armazenamento de notas fiscais
- Validação do XML de NF-e/NFC-es
- Emissão, download, consulta e cancelamento de NF-e/NFC-es (Testar em ambiente de homologação)
- Comunicação com SEFAZ (Consulta de cadastro, inutilização de notas, manifestação do destinatário)
- Interface simples e em português
Créditos
Ajuda
Para relatar bugs ou fazer perguntas utilize o Issues ou via email [email protected]
Como este é um projeto em desenvolvimento, qualquer feedback será bem-vindo.