{"id":18895466,"url":"https://github.com/savaged/cgicc-intranet","last_synced_at":"2026-02-27T22:30:15.137Z","repository":{"id":66955934,"uuid":"337428889","full_name":"savaged/cgicc-intranet","owner":"savaged","description":"Internal website","archived":false,"fork":false,"pushed_at":"2021-03-04T09:34:26.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-31T07:43:54.424Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/savaged.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-09T14:21:22.000Z","updated_at":"2021-03-04T09:35:20.000Z","dependencies_parsed_at":"2023-02-21T06:15:39.992Z","dependency_job_id":null,"html_url":"https://github.com/savaged/cgicc-intranet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/savaged%2Fcgicc-intranet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/savaged%2Fcgicc-intranet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/savaged%2Fcgicc-intranet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/savaged%2Fcgicc-intranet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/savaged","download_url":"https://codeload.github.com/savaged/cgicc-intranet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239870098,"owners_count":19710641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T08:28:15.691Z","updated_at":"2026-02-27T22:30:15.107Z","avatar_url":"https://github.com/savaged.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Intranet\n\nInternal website using CGI with Apache 2\n\n\n## WIP\n\n* Need to do a lot of work to understand CGI configuration with Apache 2\n* OR switch to one executable that does everything, with links driven by arguments\n    * Going down this route using this reference:\n        * https://www.tutorialspoint.com/cplusplus/cpp_web_programming.htm\n\n\n## Structure\n\n* Entry point: `var/www/html/index.html`\n\n* CGI executable: `index.cgi`\n\n\n\n## Deployment\n\n* The entry point (`index.html`) is copied to `var/www/html/`\n* The CGI executable is copied to `/usr/lib/cgi-bin/`\n\n\n## Pre-requisites\n\n```\nsudo apt update\nsudo apt install apache2\nsudo usermod -a -G www-data pi\nsudo a2enmod cgi\nsudo service apache2 restart\n```\n\n\n## Context\n\nAt the start I have two goals.\n\n1. To have fun learning and tinkering with CGI\n2. To be able to browse from any device to my useful private(ish) data, at home.\n    1. That includes my 'todo' list and I had in mind something like this:\n```\n#!/bin/bash\necho \"\u003chtml\u003e\u003chead\u003e\u003ctitle\u003eTO DO\u003c/title\u003e\u003c/head\u003e\u003cbody\u003e\u003ctable\u003e\" ;\nprint_header=true\nwhile read INPUT ; do\n  if $print_header;then\n    echo \"\u003ctr\u003e\u003cth\u003e$INPUT\" | sed -e 's/:[^,]*\\(,\\|$\\)/\u003c\\/th\u003e\u003cth\u003e/g'\n    print_header=false\n  fi\n  echo \"\u003ctr\u003e\u003ctd\u003e${INPUT//,/\u003c/td\u003e\u003ctd\u003e}\u003c/td\u003e\u003c/tr\u003e\" ;\ndone \u003c ~/repos/docs/todo.csv ;\necho \"\u003c/table\u003e\u003c/body\u003e\u003c/html\u003e\"\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsavaged%2Fcgicc-intranet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsavaged%2Fcgicc-intranet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsavaged%2Fcgicc-intranet/lists"}