Documentation for Ancile:
I think it's a good start to deploy Ancile locally first and then move to the server version. Steps are similar except you need to obtain certificates differently.
-
Fetch dependencies:
mix deps.get
and build the project:mix
. -
Get SSL certificates (run
mix phx.gen.cert
locally and use LetsEncrypt remotely)-
For the local deployment just check SSL location in
dev.exs
-
Create empty
dev.secret.exs
. For remote deployment put the following config:config :ancile, AncileWeb.Endpoint, http: [port: 4000], https: [ port: 4001, cipher_suite: :strong, keyfile: "/home/ubuntu/certs/privkey.pem", cacertfile: "/home/ubuntu/certs/chain.pem", certfile: "/home/ubuntu/certs/cert.pem" ], url: [ host: "{your_hostname}"]
-
Don't try to commit
dev.secret.exs
, as then we can have separate deployments running Ancile without code conflicts and will keep our keys private.
-
-
Add integration of Data Providers using configs from LINK (ask Eugene for help, ideally we should move it inside Ancile later)
-
Register an app on CDS/GitHub/Azure
-
You can have same apps for both desktop and remote deployment, just make sure to update CallBack URL accordingly. Create/Modify
dev.secret.exs
and append the following config:config :ancile, :pow_assent, providers: [ github: [ client_id: "client_id", client_secret: "client_secret", strategy: PowAssent.Strategy.Github ], campus_data_service: [ client_id: "client_id", client_secret: "client_secret", strategy: Ancile.PowAssentProviders.CampusDataService ] ]
-
-
Configure PostgresSQL docker:
sh utils/postgres/create_docker_db.sh
-
Add new tables to your database:
mix ecto.migrate
-
Install Node.js dependencies:
cd assets && npm install
. Don't forget to go back:cd ..
. -
Start the server:
mix phx.server
Let's just review each others code and verify that it works.
Ideally, we will need to have better testing, but will see how it goes.