Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
460 changes: 460 additions & 0 deletions rockydocs.sh

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions tools/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Rocky Linux Documentation Script Changelog

All notable changes to the `rockydocs.sh` script will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to NEVRA versioning (Name-Version-Release).

No versioned commits found yet.
127 changes: 127 additions & 0 deletions tools/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
version: '3.8'

services:
# Rocky Linux Documentation Development Server
rockydocs-dev:
build:
context: .
dockerfile: Dockerfile.dev
container_name: rockydocs-dev-serve
ports:
- "8000:8000"
volumes:
# Mount app directory for live editing
- ./:/app:rw
# Mount content directory for live content editing
- ../content/docs:/app/content:rw
# Persist git data for proper timestamps
- ../.git:/app/.git:ro
working_dir: /app
command: mkdocs serve -a 0.0.0.0:8000
environment:
- PYTHONPATH=/app
- MKDOCS_CONFIG_FILE=mkdocs.docker.yml
- GIT_AUTHOR_NAME=Rocky Linux Documentation
- GIT_AUTHOR_EMAIL=docs@rockylinux.org
- GIT_COMMITTER_NAME=Rocky Linux Documentation
- GIT_COMMITTER_EMAIL=docs@rockylinux.org
networks:
- rockydocs-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s

# Static file server for production-like testing
rockydocs-static:
build:
context: .
dockerfile: Dockerfile.dev
container_name: rockydocs-static-serve
ports:
- "8001:8000"
volumes:
- ./site-static:/app/static:ro
working_dir: /app
command: python3 -m http.server 8000 -d /app/static
networks:
- rockydocs-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
profiles:
- static

# Build service for deployment testing
rockydocs-build:
build:
context: .
dockerfile: Dockerfile.dev
container_name: rockydocs-build
volumes:
- ./:/app:rw
- ../content/docs:/app/content:rw
- ../.git:/app/.git:ro
working_dir: /app
environment:
- PYTHONPATH=/app
- MKDOCS_CONFIG_FILE=mkdocs.docker.yml
- GIT_AUTHOR_NAME=Rocky Linux Documentation
- GIT_AUTHOR_EMAIL=docs@rockylinux.org
- GIT_COMMITTER_NAME=Rocky Linux Documentation
- GIT_COMMITTER_EMAIL=docs@rockylinux.org
command: /bin/bash -c "echo 'Build service ready. Run: docker-compose exec rockydocs-build mike deploy --push --update-aliases 10 latest'"
networks:
- rockydocs-network
profiles:
- build

# Database for development analytics (optional)
rockydocs-analytics:
image: postgres:15-alpine
container_name: rockydocs-analytics
environment:
- POSTGRES_DB=rockydocs
- POSTGRES_USER=rockydocs
- POSTGRES_PASSWORD=development
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
networks:
- rockydocs-network
restart: unless-stopped
profiles:
- analytics

# Redis for caching (optional)
rockydocs-cache:
image: redis:7-alpine
container_name: rockydocs-cache
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- rockydocs-network
restart: unless-stopped
command: redis-server --appendonly yes
profiles:
- cache

networks:
rockydocs-network:
driver: bridge

volumes:
postgres_data:
driver: local
redis_data:
driver: local
110 changes: 110 additions & 0 deletions tools/mkdocs-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
site_name: "Documentation"
site_url: "https://docs.rockylinux.org/"
docs_dir: "content"
repo_url: https://github.com/rocky-linux/documentation
repo_name: rocky-linux/documentation
edit_uri: "edit/main/docs/"

theme:
name: material
custom_dir: theme
icon:
edit: material/pencil
features:
- content.action.edit
- content.code.copy
- navigation.tabs
- navigation.tabs.sticky
- navigation.top
- search.suggest
- search.highlight
- search.share
logo: assets/logo.png
favicon: assets/logo.png
palette:
- scheme: default
media: "(prefers-color-scheme: light)"
toggle:
icon: material/weather-night
name: Switch to dark mode
primary: black
- scheme: slate
media: "(prefers-color-scheme: dark)"
toggle:
icon: material/weather-sunny
name: Switch to light mode
primary: black

markdown_extensions:
- abbr
- attr_list
- admonition
- toc:
permalink: true
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
- pymdownx.highlight
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
- pymdownx.keys
- pymdownx.caret
- pymdownx.mark
- pymdownx.tilde
- pymdownx.tabbed:
alternate_style: true
- pymdownx.details
- pymdownx.tasklist
- footnotes
- def_list
- meta

plugins:
- mike:
version_selector: true
- search
- awesome-pages
- i18n:
docs_structure: suffix
fallback_to_default: true
reconfigure_material: true
reconfigure_search: true
languages:
- build: true
default: true
locale: en
name: English
- build: true
default: false
locale: uk
name: Ukrainian
- git-revision-date-localized:
fallback_to_build_date: true
type: date
- redirects:
redirect_maps:
"guides/add_mirror_manager.md": "guides/mirror_management/add_mirror_manager.md"
- tags
- privacy:
enabled: false

extra:
version:
provider: mike
default: latest
alias: true
social:
- icon: fontawesome/brands/twitter
link: https://twitter.com/rocky_linux
- icon: fontawesome/brands/github
link: https://github.com/rocky-linux
- icon: fontawesome/brands/gitlab
link: https://git.rockylinux.org
- icon: material/home
link: https://rockylinux.org

copyright: Copyright © 2026 The Rocky Enterprise Software Foundation
74 changes: 74 additions & 0 deletions tools/requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Rocky Linux Documentation - Development Requirements
# Additional development tools beyond production requirements

# Core MkDocs and Material theme (production requirements)
mkdocs>=1.5.0
mkdocs-material>=9.0.0
mike>=2.0.0

# Language and internationalization support
mkdocs-static-i18n>=1.2.0

# Content and navigation plugins
mkdocs-awesome-pages-plugin>=2.9.0
mkdocs-redirects>=1.2.0

# Git integration and timestamps
mkdocs-git-revision-date-localized-plugin>=1.2.0

# Search and content features
mkdocs-minify-plugin>=0.8.0
mkdocs-macros-plugin>=1.0.0

# Privacy and social features
mkdocs-material[recommended]>=9.0.0

# Development and testing tools
pytest>=7.0.0
pytest-cov>=4.0.0
black>=23.0.0
flake8>=6.0.0
mypy>=1.0.0

# Container development support
docker>=6.0.0
docker-compose>=2.0.0

# Git and repository tools
GitPython>=3.1.0
pre-commit>=3.0.0

# JSON and YAML processing
pyyaml>=6.0
jsonschema>=4.0.0

# HTTP and web development
requests>=2.28.0
httpx>=0.24.0

# Build and deployment tools
wheel>=0.40.0
build>=0.10.0
twine>=4.0.0

# Documentation generation
sphinx>=6.0.0
sphinx-rtd-theme>=1.2.0

# Performance and monitoring
psutil>=5.9.0
watchdog>=3.0.0

# Quality assurance
bandit>=1.7.0
safety>=2.3.0
pipreqs>=0.4.0

# Development utilities
ipython>=8.0.0
jupyter>=1.0.0
notebook>=6.5.0

# File and path utilities
pathspec>=0.11.0
platformdirs>=3.0.0
Loading