Add migrations, test keys, github workflows

This commit is contained in:
Simponic 2022-12-19 20:56:59 -07:00
parent 110eb0b199
commit 466295f26f
Signed by untrusted user who does not match committer: simponic
GPG Key ID: 52B3774857EB24B1
15 changed files with 122 additions and 23 deletions

27
.github/workflows/elixir.yml vendored Normal file
View File

@ -0,0 +1,27 @@
on: push
jobs:
test:
runs-on: ubuntu-latest
services:
db:
image: postgres:11
ports: ['5432:5432']
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v2
- uses: actions/setup-elixir@v1
with:
otp-version: '25'
elixir-version: '1.14.0'
- run: mix deps.get
- run: mix deps.compile
- run: mix test

3
.gitignore vendored
View File

@ -24,6 +24,3 @@ server-*.tar
# Temporary files, for example, from tests.
/tmp/
# Private files, like configuration secrets or keys.
/priv/

View File

@ -1,21 +1,2 @@
# Server
**TODO: Add description**
## Installation
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `server` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:server, "~> 0.1.0"}
]
end
```
Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at <https://hexdocs.pm/server>.
# CheSSH

View File

@ -6,3 +6,6 @@ config :chessh, Chessh.Repo,
password: "postgres",
hostname: "localhost",
pool: Ecto.Adapters.SQL.Sandbox
config :esshd,
priv_dir: Path.join(Path.dirname(__DIR__), "priv/test_keys")

1
priv/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
keys/

View File

@ -0,0 +1,15 @@
defmodule Chessh.Repo.Migrations.CreatePlayer do
use Ecto.Migration
def change do
execute "CREATE EXTENSION IF NOT EXISTS citext", ""
create table(:players) do
add :username, :citext, null: false
add :hashed_password, :string, null: false
timestamps()
end
create unique_index(:players, [:username])
end
end

View File

@ -0,0 +1,14 @@
defmodule Chessh.Repo.Migrations.AddKeys do
use Ecto.Migration
def change do
create table(:keys) do
add :key, :string, null: false
add :name, :string, null: false
add :player_id, references(:players)
timestamps()
end
end
end

View File

View File

@ -0,0 +1 @@
127.0.0.1,127.0.0.1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC7Mpf2QIL32MmKxcrXAoZM3l7/hBy+8d+WqTRMun+tC/XYNiXSIDuZv01an3D1d22fmSpZiprFQzjB4yEz23qw= logan@yagami

View File

@ -0,0 +1,21 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABsgAAAAdzc2gtZH
NzAAAAgQCpKTDuhGwm9AXQPZuWSdHxraaiUV4cgu4uFlgHahV8Qzy9MGpDpp9lbt3uGe1F
MI0jQeIx0Bc3KxSiwLl0ggjF+f5100eZBRdw+3km/BQKaZYdPgSiZ9QdOAN2rRKl653uqA
85fnhm1UwS+q37RSvdJotBTh8mJk/PILGwRCoEhwAAABUA6hwmQu2jkb2KhfL/TjVTlwJF
Gk0AAACAMd1xLqW/iXVzWpNUxMUNeevDOwhY+RqgZUripwZhKuoNuFiLu79UkNpd/mKTkL
99PuxnM6RdaWjx54rTqw3DLsFjNR6mx5HOlDyIyIaGlXqIDiiGMNoFTCECJnYEupMtxwA1
a5jj742pDyKAspO9MwVrsHPNkAuAXOsnefFLtRkAAACBAIHWLyhaO8us6vzxlX5xH0bcbL
RNh8XcTXu5/xRB7kX1mBITZKBKm1RhBYPTrADlzC/P+gu4hF14KjvAU+pRCYOE2x2VT036
glcMQxa40id2g5v9tiIwoZF/UE0w8yargNd4kzVpWO2ecq8VYQ/j8o895Fy9Rr2qYbQlaf
iuT/hlAAAB6FkytPhZMrT4AAAAB3NzaC1kc3MAAACBAKkpMO6EbCb0BdA9m5ZJ0fGtpqJR
XhyC7i4WWAdqFXxDPL0wakOmn2Vu3e4Z7UUwjSNB4jHQFzcrFKLAuXSCCMX5/nXTR5kFF3
D7eSb8FApplh0+BKJn1B04A3atEqXrne6oDzl+eGbVTBL6rftFK90mi0FOHyYmT88gsbBE
KgSHAAAAFQDqHCZC7aORvYqF8v9ONVOXAkUaTQAAAIAx3XEupb+JdXNak1TExQ1568M7CF
j5GqBlSuKnBmEq6g24WIu7v1SQ2l3+YpOQv30+7GczpF1paPHnitOrDcMuwWM1HqbHkc6U
PIjIhoaVeogOKIYw2gVMIQImdgS6ky3HADVrmOPvjakPIoCyk70zBWuwc82QC4Bc6yd58U
u1GQAAAIEAgdYvKFo7y6zq/PGVfnEfRtxstE2HxdxNe7n/FEHuRfWYEhNkoEqbVGEFg9Os
AOXML8/6C7iEXXgqO8BT6lEJg4TbHZVPTfqCVwxDFrjSJ3aDm/22IjChkX9QTTDzJquA13
iTNWlY7Z5yrxVhD+Pyjz3kXL1GvaphtCVp+K5P+GUAAAAUGpvtb1Jl3ZVhjiiCc8adUik2
21IAAAAMbG9nYW5AeWFnYW1pAQIDBAUG
-----END OPENSSH PRIVATE KEY-----

View File

@ -0,0 +1 @@
ssh-dss AAAAB3NzaC1kc3MAAACBAKkpMO6EbCb0BdA9m5ZJ0fGtpqJRXhyC7i4WWAdqFXxDPL0wakOmn2Vu3e4Z7UUwjSNB4jHQFzcrFKLAuXSCCMX5/nXTR5kFF3D7eSb8FApplh0+BKJn1B04A3atEqXrne6oDzl+eGbVTBL6rftFK90mi0FOHyYmT88gsbBEKgSHAAAAFQDqHCZC7aORvYqF8v9ONVOXAkUaTQAAAIAx3XEupb+JdXNak1TExQ1568M7CFj5GqBlSuKnBmEq6g24WIu7v1SQ2l3+YpOQv30+7GczpF1paPHnitOrDcMuwWM1HqbHkc6UPIjIhoaVeogOKIYw2gVMIQImdgS6ky3HADVrmOPvjakPIoCyk70zBWuwc82QC4Bc6yd58Uu1GQAAAIEAgdYvKFo7y6zq/PGVfnEfRtxstE2HxdxNe7n/FEHuRfWYEhNkoEqbVGEFg9OsAOXML8/6C7iEXXgqO8BT6lEJg4TbHZVPTfqCVwxDFrjSJ3aDm/22IjChkX9QTTDzJquA13iTNWlY7Z5yrxVhD+Pyjz3kXL1GvaphtCVp+K5P+GU= logan@yagami

View File

@ -0,0 +1,9 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQQuzKX9kCC99jJisXK1wKGTN5e/4Qcv
vHflqk0TLp/rQv12DYl0iA7mb9NWp9w9Xdtn5kqWYqaxUM4weMhM9t6sAAAAqFwD00xcA9
NMAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC7Mpf2QIL32MmKx
crXAoZM3l7/hBy+8d+WqTRMun+tC/XYNiXSIDuZv01an3D1d22fmSpZiprFQzjB4yEz23q
wAAAAgCA9MOKEi7uU/lhsow6WOv+uAfp3u3t0KE1qP7IWIYpAAAAAMbG9nYW5AeWFnYW1p
AQIDBA==
-----END OPENSSH PRIVATE KEY-----

View File

@ -0,0 +1 @@
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC7Mpf2QIL32MmKxcrXAoZM3l7/hBy+8d+WqTRMun+tC/XYNiXSIDuZv01an3D1d22fmSpZiprFQzjB4yEz23qw= logan@yagami

View File

@ -0,0 +1,27 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAijpwz+A646qB9EoDy8kXGJBRTlsSmTc8hzHoj2VhjeFOrrKrQxAl
tIJ8v0mDlOP+kBvhfUeg5bPUdAofQjAJMm1RJXlqPcLFojYZF23AJ3F7qsdWaelJmCBvXw
B5xtA+dM8r7sxC5Him0DuFfx4s63lERH3H1e8do4GA7bo7Z/ovQDdPPzZ4ZZL8jhwA4NI8
1SZqCcqNbYuv+uD/OcogXDVf/LaKXcqCGnewmBVBydHuTF5rBfVwllWFFlfz/KRYi/BLuj
Vp/Q5b99EF2UZ3Pe0v4t3I/hxmFB8eVp/alC4hhUtXTEx3xpIwBpc6MESB2w0YOtg0K2+3
Cyp+zXWRLQAAA8jVqqSo1aqkqAAAAAdzc2gtcnNhAAABAQCKOnDP4DrjqoH0SgPLyRcYkF
FOWxKZNzyHMeiPZWGN4U6usqtDECW0gny/SYOU4/6QG+F9R6Dls9R0Ch9CMAkybVEleWo9
wsWiNhkXbcAncXuqx1Zp6UmYIG9fAHnG0D50zyvuzELkeKbQO4V/HizreUREfcfV7x2jgY
Dtujtn+i9AN08/NnhlkvyOHADg0jzVJmoJyo1ti6/64P85yiBcNV/8topdyoIad7CYFUHJ
0e5MXmsF9XCWVYUWV/P8pFiL8Eu6NWn9Dlv30QXZRnc97S/i3cj+HGYUHx5Wn9qULiGFS1
dMTHfGkjAGlzowRIHbDRg62DQrb7cLKn7NdZEtAAAAAwEAAQAAAQAFkJo+PYZUEucl8lKK
TPzIIUvrVg50NXgomjQFDTK6+fKHZSEwyJDis5Z5mKhP4XORZ39HDPqXh3XwEQCWqHqU+Y
0uL3U9P3Q3llV2xGqbZpMbuj2KndjNDiXlrXjO7fnMYpMfy0CN1E9PlqHbzwIbHcKc6PJs
tLJyWhzvv9MImcej3d41OQJL1icKpByy7w1Dc0SbPaqlwxg1ikVMIhxtj8mWUSryqsc6U9
Ho5bKpaRmqZ/0MAV01N3ynLrUTWQdTlF+9F9PUVsTjBsfo3jyWr/lXR4WHeWx81Pgc0SrK
WptOuIoWNxUhj2gp+DBgiaCKjkjLNqPk/PxeFJMNCE8hAAAAgHfkuSwteenOqOJGt3fKB6
rRdBoMTyhAFzt04SlunTJjNTZFiFZjsRSRDMOSTxc3se+Edd+EcBAgoljXtBfYoxTKIgAp
rUpfEoKFsBbd3raXr2CnqMPy5lybCs8o5WrSjKJOh2rttxfvMErGvMwisMU+64twR1NCs3
xwJfFyrR99AAAAgQDDOPK5m/mruNfLlb4v1+ET4vHq7flIDUgTEqVPrNuncR8KsYYbEeoj
ryPwJYqIOLVUQI+3JHgoe/1yWxsITqG/C2MQp6iqdbNxIrM1E73c28siz4KDxzRWxSff/G
8zxkGrCHhPrNg4taBIiQy8WQGhTUaknDgklOxfuB2gMLI2DQAAAIEAtUMb7C+ROmVbIy4O
dpenYBcQhJcCIJXKvDGUgZvqQPcIeeEWtnt8svPfg3oG39mZNeNx7rA7a2GA0DG7DEq7gG
8n+bxHCogERhUx+J6UMapOvu98V9YNjoLvvtaFM3G7oEAl82A9ex7lqDESsXQyAsuEndv8
UNvsglNa5kyuH6EAAAAMbG9nYW5AeWFnYW1pAQIDBAUGBw==
-----END OPENSSH PRIVATE KEY-----

View File

@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKOnDP4DrjqoH0SgPLyRcYkFFOWxKZNzyHMeiPZWGN4U6usqtDECW0gny/SYOU4/6QG+F9R6Dls9R0Ch9CMAkybVEleWo9wsWiNhkXbcAncXuqx1Zp6UmYIG9fAHnG0D50zyvuzELkeKbQO4V/HizreUREfcfV7x2jgYDtujtn+i9AN08/NnhlkvyOHADg0jzVJmoJyo1ti6/64P85yiBcNV/8topdyoIad7CYFUHJ0e5MXmsF9XCWVYUWV/P8pFiL8Eu6NWn9Dlv30QXZRnc97S/i3cj+HGYUHx5Wn9qULiGFS1dMTHfGkjAGlzowRIHbDRg62DQrb7cLKn7NdZEt logan@yagami