Free public tools for IT admins, automation engineers, MSP engineers, and DevOps users.
ITOps Toolkit is a public-safe Streamlit dashboard for common troubleshooting tasks. It does not require login, does not use a database, and does not permanently store user-entered domains, logs, JSON, JWTs, or encoded text.
- Domain Health Checker with DNS, SSL, HTTP, DNSSEC, SPF/DMARC posture, MTA-STS, TLS-RPT, recommendations, CSV, Markdown, and standalone HTML exports.
- DNS Record Checker for A, AAAA, MX, TXT, NS, CNAME, SOA, SPF, and DMARC records.
- SSL Certificate Checker with subject, issuer, SANs, validity dates, and expiration status.
- HTTP Status Checker with redirects, response time, selected headers, and security recommendations.
- JSON Formatter with validation, formatting, minifying, and download support.
- Base64 encoder and decoder.
- JWT Decoder that reads header and payload without verifying or sending the token externally.
- Cron Explainer for common 5-field cron expressions.
- Log Troubleshooting Assistant with rule-based, public-safe analysis and optional Azure AI summaries.
- Roadmap & Feedback board with curated seed items, live public GitHub Issues, planned work, completed work, and static AI recommendations.
Use Python 3.11 or newer.
make setup
make runThen open the local Streamlit URL shown in the terminal. By default, make run starts Streamlit on port 8502. Override it when needed:
make run PORT=8503Useful local commands:
make help # list available commands
make qa # compile Python files and run tests
make test # run pytest only
make clean # remove local Python cachespython3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txtFor local development and tests, install the dev requirements after activating the virtual environment:
pip install -r requirements-dev.txtWith the Makefile:
make runOr manually after activating the virtual environment:
streamlit run app.pyThen open the local Streamlit URL shown in the terminal.
Local Streamlit file watching is disabled in .streamlit/config.toml for stability on WSL-mounted Windows drives. Restart the Streamlit command after editing files.
The app does not require secrets for normal rule-based operation. Optional Azure AI summaries for the Log Troubleshooting Assistant require a local-only Streamlit secrets file:
cp .streamlit/secrets.example.toml .streamlit/secrets.tomlThen set values in .streamlit/secrets.toml. That file is ignored by git and must not be committed.
The example includes placeholders for direct OpenAI and Azure AI Foundry/Azure OpenAI configuration:
OPENAI_API_KEYAZURE_OPENAI_API_KEYAZURE_OPENAI_ENDPOINTAZURE_OPENAI_DEPLOYMENTAZURE_OPENAI_API_VERSION
Only Azure AI Foundry/Azure OpenAI is wired today. Direct OPENAI_API_KEY support is reserved and does not enable AI summaries. Azure AI summaries are opt-in per Log Troubleshooting submission and send only sanitized log text to the configured Azure OpenAI deployment.
Optional public links:
ITOPS_GITHUB_URLoverrides the default repository URL used by the GitHub button, Roadmap & Feedback issue links, and read-only public GitHub Issues feed. It is not a secret.
For setup and manual validation steps, see docs/azure-ai-setup.md.
With the Makefile:
make qaOr manually:
python -m compileall app.py pages utils
python -m pytestThe pytest suite uses fakes for DNS, HTTP, TLS, GitHub Issues, and Azure/OpenAI adapter tests. It does not require external network access, browser automation, secrets, or OpenAI credentials.
This app is ready for Streamlit Community Cloud:
- Push the project to a public or private GitHub repository.
- Create a new Streamlit Community Cloud app.
- Set the main file path to
app.py. - Optionally set
ITOPS_GITHUB_URLif deploying a fork and directing feedback to a different repository. - Do not add secrets unless optional Azure AI summaries are needed. See docs/azure-ai-setup.md for the required keys and smoke checks.
No database or background worker is required. Roadmap feedback reads public GitHub Issues anonymously. Azure OpenAI is optional and used only when configured and explicitly enabled on a log-analysis submission.
Before deployment, use docs/release-checklist.md. For release summaries, use docs/release-notes-template.md.
The dashboard shell, tool metadata, navigation, and reusable visual components live in utils/ui.py. Future UI changes should follow docs/design-system.md.
The Roadmap & Feedback page merges curated seed data from data/roadmap_seed.json with public GitHub Issues from the configured repository. User ideas are submitted through GitHub Issues; Streamlit does not store or write feedback.
Maintainer labels:
enhancement: include the issue as a feature request.status:in-progressorin progress: show an open issue in the In Progress column.status:completeorcomplete: show an open issue in the Complete column. Closed issues also show as Complete.- Optional category labels can match
Tools,Reports,Security,AI Ideas,UX / Design, orIntegrations; otherwise the issue form's Category field is used.
- Do not paste passwords, private keys, production tokens, API keys, or sensitive customer data.
- User input is processed in memory only.
- Download exports are generated in memory only.
- The app does not intentionally log user input.
.streamlit/secrets.toml,.env, and.env.*are ignored by git.- JWTs are decoded locally without signature verification and are not sent externally.
- The log assistant uses rule-based analysis by default and sends sanitized logs to Azure OpenAI only when Azure settings are configured and the user opts in for that submission.
Use docs/screenshot-guide.md for release QA capture targets. Save temporary screenshots outside the repository, such as /tmp/itops-screenshots.
The in-app Roadmap & Feedback page is the source of truth for public planned items, completed items, live GitHub feature requests, and curated AI recommendations. Feedback submission opens GitHub Issues and does not store ideas in Streamlit.
- Add uptime and latency trend visualization for one-off checks without persistence.