Add migrations, test keys, github workflows
This commit is contained in:
parent
110eb0b199
commit
466295f26f
27
.github/workflows/elixir.yml
vendored
Normal file
27
.github/workflows/elixir.yml
vendored
Normal 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
3
.gitignore
vendored
@ -24,6 +24,3 @@ server-*.tar
|
|||||||
|
|
||||||
# Temporary files, for example, from tests.
|
# Temporary files, for example, from tests.
|
||||||
/tmp/
|
/tmp/
|
||||||
|
|
||||||
# Private files, like configuration secrets or keys.
|
|
||||||
/priv/
|
|
21
README.md
21
README.md
@ -1,21 +1,2 @@
|
|||||||
# Server
|
# CheSSH
|
||||||
|
|
||||||
**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>.
|
|
||||||
|
|
||||||
|
@ -6,3 +6,6 @@ config :chessh, Chessh.Repo,
|
|||||||
password: "postgres",
|
password: "postgres",
|
||||||
hostname: "localhost",
|
hostname: "localhost",
|
||||||
pool: Ecto.Adapters.SQL.Sandbox
|
pool: Ecto.Adapters.SQL.Sandbox
|
||||||
|
|
||||||
|
config :esshd,
|
||||||
|
priv_dir: Path.join(Path.dirname(__DIR__), "priv/test_keys")
|
||||||
|
1
priv/.gitignore
vendored
Normal file
1
priv/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
keys/
|
15
priv/repo/migrations/20221219082326_create_player.exs
Normal file
15
priv/repo/migrations/20221219082326_create_player.exs
Normal 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
|
14
priv/repo/migrations/20221219215005_add_keys.exs
Normal file
14
priv/repo/migrations/20221219215005_add_keys.exs
Normal 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
|
0
priv/test_keys/authorized_keys
Normal file
0
priv/test_keys/authorized_keys
Normal file
1
priv/test_keys/known_hosts
Normal file
1
priv/test_keys/known_hosts
Normal file
@ -0,0 +1 @@
|
|||||||
|
127.0.0.1,127.0.0.1 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC7Mpf2QIL32MmKxcrXAoZM3l7/hBy+8d+WqTRMun+tC/XYNiXSIDuZv01an3D1d22fmSpZiprFQzjB4yEz23qw= logan@yagami
|
21
priv/test_keys/ssh_host_dsa_key
Normal file
21
priv/test_keys/ssh_host_dsa_key
Normal 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-----
|
1
priv/test_keys/ssh_host_dsa_key.pub
Normal file
1
priv/test_keys/ssh_host_dsa_key.pub
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh-dss AAAAB3NzaC1kc3MAAACBAKkpMO6EbCb0BdA9m5ZJ0fGtpqJRXhyC7i4WWAdqFXxDPL0wakOmn2Vu3e4Z7UUwjSNB4jHQFzcrFKLAuXSCCMX5/nXTR5kFF3D7eSb8FApplh0+BKJn1B04A3atEqXrne6oDzl+eGbVTBL6rftFK90mi0FOHyYmT88gsbBEKgSHAAAAFQDqHCZC7aORvYqF8v9ONVOXAkUaTQAAAIAx3XEupb+JdXNak1TExQ1568M7CFj5GqBlSuKnBmEq6g24WIu7v1SQ2l3+YpOQv30+7GczpF1paPHnitOrDcMuwWM1HqbHkc6UPIjIhoaVeogOKIYw2gVMIQImdgS6ky3HADVrmOPvjakPIoCyk70zBWuwc82QC4Bc6yd58Uu1GQAAAIEAgdYvKFo7y6zq/PGVfnEfRtxstE2HxdxNe7n/FEHuRfWYEhNkoEqbVGEFg9OsAOXML8/6C7iEXXgqO8BT6lEJg4TbHZVPTfqCVwxDFrjSJ3aDm/22IjChkX9QTTDzJquA13iTNWlY7Z5yrxVhD+Pyjz3kXL1GvaphtCVp+K5P+GU= logan@yagami
|
9
priv/test_keys/ssh_host_ecdsa_key
Normal file
9
priv/test_keys/ssh_host_ecdsa_key
Normal 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-----
|
1
priv/test_keys/ssh_host_ecdsa_key.pub
Normal file
1
priv/test_keys/ssh_host_ecdsa_key.pub
Normal file
@ -0,0 +1 @@
|
|||||||
|
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC7Mpf2QIL32MmKxcrXAoZM3l7/hBy+8d+WqTRMun+tC/XYNiXSIDuZv01an3D1d22fmSpZiprFQzjB4yEz23qw= logan@yagami
|
27
priv/test_keys/ssh_host_rsa_key
Normal file
27
priv/test_keys/ssh_host_rsa_key
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
1
priv/test_keys/ssh_host_rsa_key.pub
Normal file
1
priv/test_keys/ssh_host_rsa_key.pub
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKOnDP4DrjqoH0SgPLyRcYkFFOWxKZNzyHMeiPZWGN4U6usqtDECW0gny/SYOU4/6QG+F9R6Dls9R0Ch9CMAkybVEleWo9wsWiNhkXbcAncXuqx1Zp6UmYIG9fAHnG0D50zyvuzELkeKbQO4V/HizreUREfcfV7x2jgYDtujtn+i9AN08/NnhlkvyOHADg0jzVJmoJyo1ti6/64P85yiBcNV/8topdyoIad7CYFUHJ0e5MXmsF9XCWVYUWV/P8pFiL8Eu6NWn9Dlv30QXZRnc97S/i3cj+HGYUHx5Wn9qULiGFS1dMTHfGkjAGlzowRIHbDRg62DQrb7cLKn7NdZEt logan@yagami
|
Loading…
Reference in New Issue
Block a user