{"id":13546456,"url":"https://github.com/mcpa-stlouis/hack-the-arch","last_synced_at":"2025-04-02T18:30:51.594Z","repository":{"id":35626016,"uuid":"39899904","full_name":"mcpa-stlouis/hack-the-arch","owner":"mcpa-stlouis","description":"Welcome to HackTheArch!  A free open source scoring server for cyber Capture the Flag competitions! ","archived":false,"fork":false,"pushed_at":"2023-03-08T23:44:49.000Z","size":3665,"stargazers_count":66,"open_issues_count":17,"forks_count":27,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-03T14:35:50.405Z","etag":null,"topics":["ctf-events","ctf-framework","ctf-platform","ctf-scoreboard"],"latest_commit_sha":null,"homepage":"https://hackthearch.herokuapp.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"nihao1995/sd","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcpa-stlouis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-07-29T15:04:47.000Z","updated_at":"2024-10-29T08:20:32.000Z","dependencies_parsed_at":"2023-02-11T22:01:58.662Z","dependency_job_id":"126adbfe-0ae3-4cbd-8d9f-869a6513b370","html_url":"https://github.com/mcpa-stlouis/hack-the-arch","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcpa-stlouis%2Fhack-the-arch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcpa-stlouis%2Fhack-the-arch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcpa-stlouis%2Fhack-the-arch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcpa-stlouis%2Fhack-the-arch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcpa-stlouis","download_url":"https://codeload.github.com/mcpa-stlouis/hack-the-arch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246869674,"owners_count":20847174,"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":["ctf-events","ctf-framework","ctf-platform","ctf-scoreboard"],"created_at":"2024-08-01T12:00:38.153Z","updated_at":"2025-04-02T18:30:50.549Z","avatar_url":"https://github.com/mcpa-stlouis.png","language":"Ruby","funding_links":[],"categories":["Platforms"],"sub_categories":[],"readme":"HackTheArch \n===========\n\n[![Build Status](https://travis-ci.org/mcpa-stlouis/hack-the-arch.svg?branch=master)](https://travis-ci.org/mcpa-stlouis/hack-the-arch)\n![Heroku](https://heroku-badge.herokuapp.com/?app=hackthearch\u0026svg=1)\n![Code Climate](https://codeclimate.com/github/mcpa-stlouis/hack-the-arch/badges/gpa.svg)\n[![Coverage](https://coveralls.io/repos/github/mcpa-stlouis/hack-the-arch/badge.svg)](https://coveralls.io/github/mcpa-stlouis/hack-the-arch)\n\nThis is a scoring server built using Ruby on Rails by the Military Cyber\nProfessionals Association (MCPA).  It is free to use and extend under the MIT\nlicense (see LICENSE file).  The goal of this project is to provide a standard\ngeneric scoring server that provides an easy way to add and modify problems and\ntrack statistics of a Cyber Capture the Flag event.  While it's not\nrecommended, this server can be hosted with your challenges but we do recommend\nsand-boxing your challenges so they do not affect the scoring server.\n\n**Want to see it in action?  Live Demo hosted\n[here](https://hackthearch.herokuapp.com) and screenshots [here](https://github.com/mcpa-stlouis/hack-the-arch/wiki/Screenshots)!**\n\nWhat's different about HackTheArch?\n-----------------------------------\nWe created this application after using the [PicoCTF\nplatform](https://github.com/picoCTF/picoCTF-Platform-2) for our annual CTF.\nIt was okay, but we found it lacking some features that we wanted.  We wanted a\nway to be able to offer competitors hints for a cost, and we also wanted a way\nto create and modify problems from a web interface.  We looked around and\ndidn't see any others that met our requirements.\n[CTFd](https://github.com/isislab/CTFd): at the time, had no web admin interface \nfor creating challenges.  [Root The Box](https://github.com/moloch--/RootTheBox):\nWe didn't like all the extra stuff with the bank accounts and it just seemed too\ncomplex for our needs.  So we decided to roll our own scoring server and now you\ncan benefit from our hard work!  This application implements an optional dynamic\nhint system which will deduct points for requesting hints and also implements a\nweb interface for creating and modifying hints and challenges.  We hope you\nenjoy this application and are open to feedback so let us know what you like,\nhate, would like to see added, etc...\n\nRequirements\n------------\n* Ruby version 3.1\n* Activation and password reset e-mails depend on Heroku SendGrid add-on\n  configuration (this feature can be optionally disabled or easily modified to\n  be used with other mailers)\n* To store challenge pictures in the production environment, you'll need to\n  modify 'config/initializers/carrier\\_wave.rb' to work with your cloud storage\n  solution\n* See Gemfile for further requirements\n\nDeployment Options\n==================\nManual Deployment\n-----------------\n* To manually deploy HackTheArch, be sure to download the latest stable release \n  [here](https://github.com/mcpa-stlouis/hack-the-arch/releases), or checkout\n  the 'master' branch.  For the latest features and a less-stable version,\n  checkout the 'dev' branch.  \n\nDocker \n------\n[![](https://images.microbadger.com/badges/image/paullj1/hackthearch.svg)](https://microbadger.com/images/paullj1/hackthearch)\n\n* A Dockerfile is included along with a docker-compose.yml for deploying a\n  containerized version of HackTheArch.  More detailed instructions can be\n  found in: the [Docker README](https://github.com/mcpa-stlouis/hack-the-arch/blob/master/DOCKER_README.md).\n\nHeroku\n------\n* A few things must be configured to deploy to Heroku:\n\n  1.  Create a `HOST` environment variable that contains the url for your app\n      (e.g., HOST=hackthearch.herokuapp.com).\n  2.  For mailer support, add the sendgrid addon before deploying (`heroku\n      addons:create sendgrid:starter`).  More info on Sendgrid\n      [here](https://devcenter.heroku.com/articles/getting-started-with-ruby#set-up).\n  3.  For live streaming (submissions, chat, etc...), add the Redis To Go\n      addon.\n  \nNotes\n-----\n* All deployments of HackTheArch require some a way to send account activation\n  e-mails (or alternatively activation e-mails can be disabled in the admin\n  console).  With Heroku, you can use the Sendgrid plugin, otherwise, you'll\n  need to configure the mailer options in `config/environments/production.rb`.\n* To initialize the database, run: `bundle exec rails db:seed`.  After\n  initialization, the admin login credentials will be: **admin@gmail.com** :\n  **password**\n* **Important**: It is highly advised that you immediately change the admin\n  credentials post-deployment\n  * While any user may be made an admin, it can only be done manually in the\n    database.  This is to prevent privilege escalation through the web interface.\n\n### More configuration details on our project [wiki](https://github.com/mcpa-stlouis/hack-the-arch/wiki).\n\nContribute and Contact\n======================\nWant to help?\n-------------\n* Want to add a new feature or fix a bug? Check out a branch and submit working\n  code with tests via pull request to merge into the 'dev' branch.\n* Check out the [slack](https://hack-the-arch.slack.com) channel for more.\n* Test coverage would be a good place to start: [here](coverage/index.html)\n\nContact\n-------\n* [Paul Jordan](http://paullj1.com) @ paullj1[at]gmail[dot]com\n* [Raymond Evans](http://CyDefe.com) @ REvans[at]CyDefe[dot]com\n\nAcknowledgements\n----------------\n* Base code derived from the [Rails Tutorial](http://railstutorial.org) by\n  Michael Hartl\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcpa-stlouis%2Fhack-the-arch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcpa-stlouis%2Fhack-the-arch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcpa-stlouis%2Fhack-the-arch/lists"}