Documentation

Comprehensive guides and resources

Find detailed documentation for staging, uploading, deploying, and our processes and procedures.

All Documentation in One Place

Access guides, tutorials, and best practices for our software.

Staging Environment

The staging environment is used for testing and validating changes before deployment to production.

Key Features:

  • Isolated environment mirroring production
  • Automated testing pipelines
  • Performance monitoring
  • Rollback capabilities

Staging Process:

  1. Put your code in the ./live folder
  2. Use the staging command: ./stage.sh testing
  3. Put your secret token in the .secret file in the current directory, or specify it on the command line as the second parameter

Example Output:

[2025-10-14 20:35:22] Starting backup of ./live
[2025-10-14 20:35:22] Creating tar file: testing_staging.tar.gz
[2025-10-14 20:35:22] Tar file created successfully: testing_staging.tar.gz
[2025-10-14 20:35:22] Uploading testing_staging.tar.gz to https://www.gensoftware.dev/upload.php
File uploaded successfully as testing_staging.tar.gz
[2025-10-14 20:35:22] Upload completed successfully
[2025-10-14 20:35:22] Cleaning up local tar file
[2025-10-14 20:35:22] Backup process completed successfully

Pulling Staged Codebase:

To pull the staged codebase on the live server:

  1. Create a directory called live
  2. Install the pull.sh script using deploy
  3. Execute ./pull.sh testing with your secret token in .secret or passing it as parameter 2
  4. The payload will be downloaded and expanded into ./live

This process allows code to be pulled by remote servers from the staging server which is used during rapid development phases to quickly stage alpha and beta code. Scripts should be written after the pull, or the pull.sh modified to then move the code into its correct locations.

Uploading Files

Learn how to upload files to our system securely and efficiently.

Supported Formats:

  • Images: JPG, PNG, GIF, WebP
  • Documents: PDF, DOC, DOCX
  • Archives: ZIP, TAR, GZ
  • Code files: All common programming languages

Upload Process:

  1. Navigate to the upload section
  2. Select files or drag and drop
  3. Choose appropriate category
  4. Click upload and monitor progress

Command Line Upload:

The command follows this format:

curl -X POST -H "Authorization: Bearer wFCh1LW" -F "file=@text.xt" -F "name=test.xt" https://www.gensoftware.dev/upload.php

This takes test.xt and uploads it to the staging server as test.xt under the account owning the bearer token. This allows files to be provided to GEN from any system with CURL which is pretty much all of them, even embedded linux and this can be used for diagnostics, logfiles, datafiles, any information that you need to feedback. GEN use this feature in alpha/beta testing to pass back debug data or error capture data, such as error logs and the like.

Best Practices:

  • Compress large files before uploading
  • Use descriptive filenames
  • Verify file integrity after upload
  • Organize files in logical folders

Deploy Script Manager

Manage deployment scripts with ease using our Deploy Script Manager.

USAGE:

deploy <command> [options] [arguments]

COMMANDS:

  • list - List available scripts from the repository
  • install <script> - Install/update a script
  • reinstall <script> - Force reinstall a script (bypass version check)
  • remove <script> - Remove an installed script
  • force-remove <script> - Force remove script (ignores tracking file)
  • update [script] - Update all scripts or a specific script
  • upgrade - Upgrade the deploy manager itself
  • installed - Show currently installed scripts

OPTIONS:

  • -d, --directory DIR - Install scripts to specific directory (default: current)
  • -h, --help - Show this help message

EXAMPLES:

  • deploy list - Show available scripts
  • deploy install setip - Install the setip script
  • deploy install setip toast - Install multiple scripts
  • deploy reinstall setip - Force reinstall setip script
  • deploy remove setip - Remove the setip script
  • deploy force-remove setip - Force remove (ignores tracking issues)
  • deploy update - Update all installed scripts
  • deploy update setip - Update only the setip script
  • deploy upgrade - Upgrade deploy manager itself
  • deploy installed - Show what scripts are installed

Installation:

The first time you use this script, it will automatically install to the appropriate location:

  • Linux: /usr/bin/deploy (requires sudo)
  • macOS: /usr/local/bin/deploy (requires sudo)
  • Windows: Not supported (requires bash environment)

Software Headers

C'ish Languages (/* */)

/*
  ░░░░░░░░ ░░░░░░░ ░░░░░░░░░
  ▒▒               ▒▒     ▒▒
  ▒▒    ▒▒ ▒▒▒▒▒▒▒ ▒▒     ▒▒
  ▓▓    ▓▓ ▓▓      ▓▓     ▓▓
  ████████ ███████ ██     ██

  GEN Software Systems Development Team
├─────────────────────────────────────────────
│ Copyright (c) 2025 Global Enterprise Networks
│ Website: www.gensoftware.dev /  www.gen.uk
│ License: https://www.gen.uk/?page=license
│ Author: Richard Taylor (109)
│ BugTracker: https://mantis.gensoftware.dev
│ Mantis Tracks:
│ Project Name:
│ Dependencies:
│ Lauguages:
├─────────────────────────────────────────────
│ Revision History
│
├─────────────────────────────────────────────
*/

Script Languages (#)

#
# ░░░░░░░░ ░░░░░░░ ░░░░░░░░░
# ▒▒               ▒▒     ▒▒
# ▒▒    ▒▒ ▒▒▒▒▒▒▒ ▒▒     ▒▒
# ▓▓    ▓▓ ▓▓      ▓▓     ▓▓
# ████████ ███████ ██     ██
#
# GEN Software Systems Development Team
#├─────────────────────────────────────────────
#│ Copyright (c) 2025 Global Enterprise Networks
#│ Website: www.gensoftware.dev /  www.gen.uk
#│ License: https://www.gen.uk/?page=license
#│ Author: Richard Taylor (109)
#│ BugTracker: https://mantis.gensoftware.dev
#│ Mantis Tracks:
#│ Project Name:
#│ Dependencies:
#│ Lauguages:
#├─────────────────────────────────────────────
#│ Revision History
#│
#├─────────────────────────────────────────────
#

Scripts

Name Language Version Description
httpcheck bash 1.0.0 Validate Apache HTTP Configuration and SSL certificates
makeptr bash 1.0.0 Build reverse zone for Unbound server. File will need editing with zone and reverse ranges.
newDKIM bash 1.0.0 Add domain to OpenDKIM configuration and generate new keys
pull bash 1.0.1 GEN Staging Downloader to ./live
push bash 1.0.1 GEN Staging push files to GEN Staging
setip bash 1.0.0 Set the IP Address of the first physical network adapter
stage bash 1.0.0 Staging Upload Tool from ./live to the staging server

Processes and Procedures

Version Control

Our version control systems ensure clean, manageable code history.

  • Git: Feature branches for new work, clear commit messages, rebase before merging, code review required for all merges
  • Subversion: Centralized version control for legacy projects and enterprise environments
  • Stage: Custom staging system for rapid development and deployment cycles

Quality Assurance

Comprehensive testing ensures software reliability.

  • Unit tests for all functions
  • Integration tests for workflows
  • Performance testing
  • Security audits

Security Procedures

Security is paramount in all our processes.

  • Regular security updates
  • Access control and permissions
  • Data encryption standards
  • Incident response plans

Team Collaboration

Effective communication and collaboration tools.

  • Daily standup meetings
  • Agile sprint planning
  • Knowledge sharing sessions
  • Cross-functional teams

NO AI

We DO NOT USE AI to corrupt code with regurgitated jibberish. Our developers are skilled and experienced and the use of AI is minimal and limited to code reviews, refactors and data manipulation. We use our own local models for the utmost privacy and security and would never think of providing your codebase to Google, Anthropic or OpenAI.