├── portal ├── log │ └── .keep ├── app │ ├── models │ │ ├── .keep │ │ ├── concerns │ │ │ └── .keep │ │ ├── term.rb │ │ ├── team.rb │ │ ├── user.rb │ │ ├── job.rb │ │ └── score.rb │ ├── mailers │ │ └── .keep │ ├── assets │ │ ├── images │ │ │ └── .keep │ │ ├── stylesheets │ │ │ ├── devise.scss │ │ │ ├── home.scss │ │ │ ├── jobs.scss │ │ │ └── application.scss │ │ ├── config │ │ │ └── manifest.js │ │ └── javascripts │ │ │ ├── home.coffee │ │ │ ├── jobs.coffee │ │ │ └── application.js │ ├── controllers │ │ ├── concerns │ │ │ └── .keep │ │ ├── application_controller.rb │ │ ├── jobs_controller.rb │ │ └── home_controller.rb │ ├── helpers │ │ ├── home_helper.rb │ │ ├── jobs_helper.rb │ │ └── application_helper.rb │ ├── views │ │ ├── devise │ │ │ ├── mailer │ │ │ │ ├── password_change.html.erb │ │ │ │ ├── confirmation_instructions.html.erb │ │ │ │ ├── unlock_instructions.html.erb │ │ │ │ └── reset_password_instructions.html.erb │ │ │ ├── unlocks │ │ │ │ └── new.html.erb │ │ │ ├── passwords │ │ │ │ ├── new.html.erb │ │ │ │ └── edit.html.erb │ │ │ ├── confirmations │ │ │ │ └── new.html.erb │ │ │ ├── sessions │ │ │ │ └── new.html.erb │ │ │ ├── registrations │ │ │ │ ├── new.html.erb │ │ │ │ └── edit.html.erb │ │ │ └── shared │ │ │ │ └── _links.html.erb │ │ ├── layouts │ │ │ ├── devise.html.erb │ │ │ └── application.html.erb │ │ └── home │ │ │ └── index.erb │ └── jobs │ │ └── benchmarker_job.rb ├── lib │ ├── assets │ │ └── .keep │ └── tasks │ │ └── .keep ├── public │ ├── favicon.ico │ ├── robots.txt │ ├── 500.html │ ├── 422.html │ └── 404.html ├── .bundle │ └── config ├── config │ ├── sidekiq.yml │ ├── boot.rb │ ├── initializers │ │ ├── cookies_serializer.rb │ │ ├── session_store.rb │ │ ├── mime_types.rb │ │ ├── filter_parameter_logging.rb │ │ ├── sidekiq.rb │ │ ├── backtrace_silencers.rb │ │ ├── assets.rb │ │ ├── wrap_parameters.rb │ │ └── inflections.rb │ ├── environment.rb │ ├── deploy │ │ └── production.rb │ ├── locales │ │ ├── en.yml │ │ └── devise.en.yml │ ├── database.yml │ ├── secrets.yml │ ├── application.rb │ ├── environments │ │ ├── development.rb │ │ ├── test.rb │ │ └── production.rb │ ├── deploy.rb │ └── routes.rb ├── bin │ ├── bundle │ ├── rake │ ├── rails │ ├── spring │ └── setup ├── config.ru ├── db │ ├── migrate │ │ ├── 20160310142520_create_teams.rb │ │ ├── 20160310144552_create_jobs.rb │ │ ├── 20160310141714_create_terms.rb │ │ ├── 20160319030401_create_scores.rb │ │ └── 20160310140544_devise_create_users.rb │ ├── seeds.rb │ └── schema.rb ├── Rakefile ├── README.md ├── Gemfile.org └── Capfile ├── webapp ├── sql │ └── .gitignore ├── golang │ ├── .gitignore │ ├── setup.sh │ ├── Makefile │ ├── templates │ │ ├── post_id.html │ │ ├── posts.html │ │ ├── user.html │ │ ├── banned.html │ │ ├── register.html │ │ ├── login.html │ │ ├── index.html │ │ ├── layout.html │ │ └── post.html │ ├── go.mod │ ├── Dockerfile │ └── go.sum ├── python │ ├── .dockerignore │ ├── .gitignore │ ├── templates │ │ ├── posts.html │ │ ├── layout.html │ │ ├── user.html │ │ ├── header.html │ │ ├── banned.html │ │ ├── register.html │ │ ├── login.html │ │ ├── index.html │ │ └── post.html │ ├── pyproject.toml │ └── Dockerfile ├── ruby │ ├── .gitignore │ ├── unicorn_config.rb │ ├── views │ │ ├── posts.erb │ │ ├── user.erb │ │ ├── layout.erb │ │ ├── banned.erb │ │ ├── header.erb │ │ ├── register.erb │ │ ├── login.erb │ │ ├── index.erb │ │ └── post.erb │ ├── Gemfile │ ├── config.ru │ ├── Dockerfile │ └── Gemfile.lock ├── node │ ├── .gitignore │ ├── views │ │ ├── post.ejs │ │ ├── footer.ejs │ │ ├── posts.ejs │ │ ├── header.ejs │ │ ├── user.ejs │ │ ├── page_header.ejs │ │ ├── banned.ejs │ │ ├── register.ejs │ │ ├── login.ejs │ │ ├── index.ejs │ │ └── _post.ejs │ ├── src │ │ └── types │ │ │ └── express-session.d.ts │ ├── tsconfig.json │ ├── Dockerfile │ └── package.json ├── public │ ├── favicon.ico │ ├── img │ │ └── ajax-loader.gif │ ├── js │ │ ├── timeago.min.js │ │ └── main.js │ └── css │ │ └── style.css ├── php │ ├── views │ │ ├── posts.php │ │ ├── user.php │ │ ├── layout.php │ │ ├── banned.php │ │ ├── header.php │ │ ├── register.php │ │ ├── login.php │ │ ├── index.php │ │ └── post.php │ ├── composer.json │ └── Dockerfile ├── etc │ └── nginx │ │ └── conf.d │ │ ├── default.conf │ │ └── php.conf.org └── docker-compose.yml ├── ansible_old ├── .gitignore ├── README.md ├── roles │ ├── bench │ │ ├── tasks │ │ │ ├── main.yml │ │ │ ├── go.yml │ │ │ └── benchmarker.yml │ │ └── vars │ │ │ └── main.yml │ ├── portal │ │ ├── handlers │ │ │ ├── mysql.yml │ │ │ ├── main.yml │ │ │ ├── nginx.yml │ │ │ └── redis.yml │ │ ├── tasks │ │ │ ├── main.yml │ │ │ ├── redis.yml │ │ │ ├── nginx.yml │ │ │ └── mysql.yml │ │ └── files │ │ │ ├── nginx │ │ │ └── shanai-isucon-portal │ │ │ └── mysql │ │ │ └── my.cnf │ └── isucon-base │ │ ├── tasks │ │ ├── git.yml │ │ ├── main.yml │ │ ├── packages.yml │ │ ├── env.yml │ │ ├── user.yml │ │ └── ruby.yml │ │ └── vars │ │ └── main.yml ├── setup-bench.yml ├── setup-portal.yml ├── production ├── group_vars │ └── admin.yml └── setup.yml ├── benchmarker ├── .gitignore ├── run.sh ├── version.go ├── userdata │ ├── .gitignore │ ├── README.md │ ├── ramen │ │ └── ramen.js │ └── load.rb ├── Makefile ├── main.go ├── go.mod ├── util │ └── util.go ├── cli_test.go ├── score │ ├── score.go │ └── fail.go ├── sql │ └── schema.sql ├── Dockerfile ├── cache │ └── cache.go ├── userdata.go └── checker │ └── session.go ├── .github ├── CODEOWNERS └── workflows │ ├── renovate-config-validator-ci.yml │ ├── hadolint.yml │ └── codeql.yml ├── provisioning ├── hosts ├── ansible.cfg ├── bench │ ├── files │ │ └── etc │ │ │ └── profile.d │ │ │ └── bashrc │ └── ansible │ │ ├── 05_build.yml │ │ ├── playbooks.yml │ │ ├── 00_base.yml │ │ ├── 04_userdata.yml │ │ ├── 03_bench.yml │ │ ├── 01_user.yml │ │ ├── 06_kernel.yml │ │ └── 02_golang.yml ├── image │ ├── files │ │ ├── etc │ │ │ ├── nginx │ │ │ │ └── sites-available │ │ │ │ │ ├── isucon.conf │ │ │ │ │ └── isucon-php.conf │ │ │ ├── profile.d │ │ │ │ └── bashrc │ │ │ └── systemd │ │ │ │ └── system │ │ │ │ ├── isu-node.service │ │ │ │ ├── isu-go.service │ │ │ │ ├── isu-python.service │ │ │ │ └── isu-ruby.service │ │ └── home │ │ │ └── isucon │ │ │ └── env.sh │ └── ansible │ │ ├── 09_build_benchmarker.yml │ │ ├── 06_createdb.yml │ │ ├── playbooks.yml │ │ ├── 02_mysql.yml │ │ ├── 08_userdata.yml │ │ ├── 01_user.yml │ │ ├── 03_nginx.yml │ │ ├── 05_app.yml │ │ ├── 00_base.yml │ │ └── 04_xbuild.yml └── README.md ├── .hadolint.yaml ├── .gitignore ├── Makefile ├── LICENSE ├── renovate.json ├── public_manual.md └── AGENTS.md /portal/log/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/app/models/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/lib/assets/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/lib/tasks/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/app/mailers/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/public/favicon.ico: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webapp/sql/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /portal/app/assets/images/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/app/models/concerns/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webapp/golang/.gitignore: -------------------------------------------------------------------------------- 1 | app 2 | -------------------------------------------------------------------------------- /ansible_old/.gitignore: -------------------------------------------------------------------------------- 1 | *.retry 2 | -------------------------------------------------------------------------------- /portal/app/controllers/concerns/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /webapp/python/.dockerignore: -------------------------------------------------------------------------------- 1 | .venv 2 | -------------------------------------------------------------------------------- /webapp/python/.gitignore: -------------------------------------------------------------------------------- 1 | .venv 2 | -------------------------------------------------------------------------------- /benchmarker/.gitignore: -------------------------------------------------------------------------------- 1 | *.test 2 | bin/ 3 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | webapp/python/ @kyoto7250 2 | -------------------------------------------------------------------------------- /webapp/ruby/.gitignore: -------------------------------------------------------------------------------- 1 | .bundle 2 | vendor 3 | -------------------------------------------------------------------------------- /benchmarker/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exec "$@" 4 | -------------------------------------------------------------------------------- /webapp/golang/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | make 4 | -------------------------------------------------------------------------------- /webapp/node/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | -------------------------------------------------------------------------------- /portal/.bundle/config: -------------------------------------------------------------------------------- 1 | --- 2 | BUNDLE_PATH: "vendor/bundle" 3 | -------------------------------------------------------------------------------- /portal/app/helpers/home_helper.rb: -------------------------------------------------------------------------------- 1 | module HomeHelper 2 | end 3 | -------------------------------------------------------------------------------- /portal/app/helpers/jobs_helper.rb: -------------------------------------------------------------------------------- 1 | module JobsHelper 2 | end 3 | -------------------------------------------------------------------------------- /portal/app/models/term.rb: -------------------------------------------------------------------------------- 1 | class Term < ActiveRecord::Base 2 | end 3 | -------------------------------------------------------------------------------- /portal/app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | end 3 | -------------------------------------------------------------------------------- /provisioning/hosts: -------------------------------------------------------------------------------- 1 | [guests] 2 | isu-app 3 | 4 | [bench] 5 | isu-bench 6 | -------------------------------------------------------------------------------- /provisioning/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | allow_world_readable_tmpfiles = true 3 | -------------------------------------------------------------------------------- /portal/config/sidekiq.yml: -------------------------------------------------------------------------------- 1 | --- 2 | :concurrency: 1 3 | :pidfile: tmp/pids/sidekiq.pid 4 | -------------------------------------------------------------------------------- /webapp/golang/Makefile: -------------------------------------------------------------------------------- 1 | all: app 2 | 3 | app: *.go go.mod go.sum 4 | go build -o app 5 | -------------------------------------------------------------------------------- /.hadolint.yaml: -------------------------------------------------------------------------------- 1 | ignored: 2 | - DL3015 3 | - DL3008 4 | - DL3018 5 | - DL3013 6 | - DL3042 7 | -------------------------------------------------------------------------------- /ansible_old/README.md: -------------------------------------------------------------------------------- 1 | ## setup 2 | 3 | ``` 4 | $ ansible-playbook -i production setup.yml 5 | ``` 6 | -------------------------------------------------------------------------------- /ansible_old/roles/bench/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - include: go.yml 3 | - include: benchmarker.yml 4 | -------------------------------------------------------------------------------- /webapp/ruby/unicorn_config.rb: -------------------------------------------------------------------------------- 1 | worker_processes 1 2 | preload_app true 3 | listen "0.0.0.0:8080" 4 | -------------------------------------------------------------------------------- /webapp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catatsuy/private-isu/HEAD/webapp/public/favicon.ico -------------------------------------------------------------------------------- /benchmarker/version.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | const Name string = "benchmarker" 4 | const Version string = "0.1.0" 5 | -------------------------------------------------------------------------------- /webapp/golang/templates/post_id.html: -------------------------------------------------------------------------------- 1 | {{ define "content" }} 2 | {{ template "post.html" .Post }} 3 | {{ end }} 4 | -------------------------------------------------------------------------------- /ansible_old/roles/portal/handlers/mysql.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restart mysql 3 | shell: systemctl restart mysql.service 4 | -------------------------------------------------------------------------------- /ansible_old/roles/portal/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - include: mysql.yml 3 | - include: redis.yml 4 | - include: nginx.yml 5 | -------------------------------------------------------------------------------- /webapp/public/img/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catatsuy/private-isu/HEAD/webapp/public/img/ajax-loader.gif -------------------------------------------------------------------------------- /ansible_old/roles/isucon-base/tasks/git.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: be sure git is installed 3 | apt: name=git state=installed 4 | -------------------------------------------------------------------------------- /ansible_old/roles/portal/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - include: nginx.yml 3 | - include: redis.yml 4 | - include: mysql.yml 5 | -------------------------------------------------------------------------------- /benchmarker/userdata/.gitignore: -------------------------------------------------------------------------------- 1 | img/ 2 | img.zip 3 | dump.sql 4 | dump.sql.bz2 5 | node_modules/ 6 | .bundle 7 | vendor/ 8 | -------------------------------------------------------------------------------- /webapp/node/views/post.ejs: -------------------------------------------------------------------------------- 1 | <%- include('header.ejs') %> 2 | <%- include('_post.ejs') %> 3 | <%- include('footer.ejs') %> 4 | -------------------------------------------------------------------------------- /ansible_old/roles/bench/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | golang_version: 1.16.3 3 | golang_os: linux 4 | golang_arch: amd64 5 | gopath: /opt/go 6 | -------------------------------------------------------------------------------- /benchmarker/Makefile: -------------------------------------------------------------------------------- 1 | all: bin/benchmarker 2 | 3 | bin/benchmarker: *.go checker/*.go go.mod go.sum 4 | go build -o bin/benchmarker 5 | -------------------------------------------------------------------------------- /portal/app/models/team.rb: -------------------------------------------------------------------------------- 1 | class Team < ActiveRecord::Base 2 | has_many :users 3 | has_many :scores 4 | has_many :jobs 5 | end 6 | -------------------------------------------------------------------------------- /portal/app/assets/stylesheets/devise.scss: -------------------------------------------------------------------------------- 1 | @import "bootstrap"; 2 | 3 | .centered { 4 | @include center-block(); 5 | width: 320px; 6 | } 7 | -------------------------------------------------------------------------------- /webapp/golang/templates/posts.html: -------------------------------------------------------------------------------- 1 |