diff --git a/README.md b/README.md index 335eae2a..4b5c6f80 100644 --- a/README.md +++ b/README.md @@ -6,19 +6,19 @@ Written in Elixir & Phoenix LiveView, with Bootstrap v5. ## TODO -- [ ] Ability to edit shifts? -- [ ] Proper modal to delete shifts? -- [ ] Allow all-day items for notes, or require hours even for sick days? -- [ ] Implement proper shift/template/assign tests (views etc) +- [X] ~~*Proper modal to delete shifts?*~~ [2022-08-14] +- [ ] Update tests, which are probably all way out of date. But I also don't care that much for this project... ## Deploying +The below notes are old; I'm using a docker build to deploy this now. Will document when I have time. + ### New versions When improvements are made, we can update the deployed version like so: ```shell -cd /opt/shift73k +cd ${SHIFT73K_BASE_DIR} # update from master /usr/bin/git pull 73k master # fetch prod deps & compile @@ -27,10 +27,10 @@ MIX_ENV=prod /usr/bin/mix compile # perform any migrations MIX_ENV=prod /usr/bin/mix ecto.migrate # update node packages via package-lock.json -/usr/bin/npm --prefix /opt/shift73k/assets/ ci +/usr/bin/npm --prefix ./assets/ ci # rebuild static assets: -rm -rf /opt/shift73k/priv/static/* -/usr/bin/npm --prefix /opt/shift73k/assets/ run deploy +rm -rf ./priv/static/* +/usr/bin/npm --prefix ./assets/ run build MIX_ENV=prod /usr/bin/mix phx.digest # rebuild release MIX_ENV=prod /usr/bin/mix release --overwrite diff --git a/assets/package-lock.json b/assets/package-lock.json index 66947817..0bd90fcf 100644 --- a/assets/package-lock.json +++ b/assets/package-lock.json @@ -57,9 +57,9 @@ } }, "node_modules/@types/node": { - "version": "18.7.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.2.tgz", - "integrity": "sha512-ce7MIiaYWCFv6A83oEultwhBXb22fxwNOQf5DIxWA4WXvDQ7K+L0fbWl/YOfCzlR5B/uFkSnVBhPcOfOECcWvA==", + "version": "18.7.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.3.tgz", + "integrity": "sha512-LJgzOEwWuMTBxHzgBR/fhhBOWrvBjvO+zPteUgbbuQi80rYIZHrk1mNbRUqPZqSLP2H7Rwt1EFLL/tNLD1Xx/w==", "dev": true }, "node_modules/@types/phoenix": { @@ -1070,9 +1070,9 @@ "peer": true }, "@types/node": { - "version": "18.7.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.2.tgz", - "integrity": "sha512-ce7MIiaYWCFv6A83oEultwhBXb22fxwNOQf5DIxWA4WXvDQ7K+L0fbWl/YOfCzlR5B/uFkSnVBhPcOfOECcWvA==", + "version": "18.7.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.3.tgz", + "integrity": "sha512-LJgzOEwWuMTBxHzgBR/fhhBOWrvBjvO+zPteUgbbuQi80rYIZHrk1mNbRUqPZqSLP2H7Rwt1EFLL/tNLD1Xx/w==", "dev": true }, "@types/phoenix": { diff --git a/config/runtime.exs b/config/runtime.exs deleted file mode 100644 index 029407bf..00000000 --- a/config/runtime.exs +++ /dev/null @@ -1,83 +0,0 @@ -import Config - -# config/runtime.exs is executed for all environments, including -# during releases. It is executed after compilation and before the -# system starts, so it is typically used to load production configuration -# and secrets from environment variables or elsewhere. Do not define -# any compile-time configuration in here, as it won't be applied. -# The block below contains prod specific runtime configuration. - -# ## Using releases -# -# If you use `mix release`, you need to explicitly enable the server -# by passing the PHX_SERVER=true when you start it: -# -# PHX_SERVER=true bin/shift73k start -# -# Alternatively, you can use `mix phx.gen.release` to generate a `bin/server` -# script that automatically sets the env var above. -if System.get_env("PHX_SERVER") do - config :shift73k, Shift73kWeb.Endpoint, server: true -end - -if config_env() == :prod do - database_url = - System.get_env("DATABASE_URL") || - raise """ - environment variable DATABASE_URL is missing. - For example: ecto://USER:PASS@HOST/DATABASE - """ - - maybe_ipv6 = if System.get_env("ECTO_IPV6"), do: [:inet6], else: [] - - config :shift73k, Shift73k.Repo, - # ssl: true, - url: database_url, - pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), - socket_options: maybe_ipv6 - - # The secret key base is used to sign/encrypt cookies and other secrets. - # A default value is used in config/dev.exs and config/test.exs but you - # want to use a different value for prod and you most likely don't want - # to check this value into version control, so we use an environment - # variable instead. - secret_key_base = - System.get_env("SECRET_KEY_BASE") || - raise """ - environment variable SECRET_KEY_BASE is missing. - You can generate one by calling: mix phx.gen.secret - """ - - host = System.get_env("PHX_HOST") || "example.com" - port = String.to_integer(System.get_env("PORT") || "4000") - - config :shift73k, Shift73kWeb.Endpoint, - url: [host: host, port: 443, scheme: "https"], - http: [ - # Enable IPv6 and bind on all interfaces. - # Set it to {0, 0, 0, 0, 0, 0, 0, 1} for local network only access. - # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html - # for details about using IPv6 vs IPv4 and loopback vs public addresses. - ip: {0, 0, 0, 0, 0, 0, 0, 0}, - port: port - ], - secret_key_base: secret_key_base - - # ## Configuring the mailer - # - # In production you need to configure the mailer to use a different adapter. - # Also, you may need to configure the Swoosh API client of your choice if you - # are not using SMTP. Here is an example of the configuration: - # - # config :shift73k, Shift73k.Mailer, - # adapter: Swoosh.Adapters.Mailgun, - # api_key: System.get_env("MAILGUN_API_KEY"), - # domain: System.get_env("MAILGUN_DOMAIN") - # - # For this example you need include a HTTP client required by Swoosh API client. - # Swoosh supports Hackney and Finch out of the box: - # - # config :swoosh, :api_client, Swoosh.ApiClient.Hackney - # - # See https://hexdocs.pm/swoosh/Swoosh.html#module-installation for details. -end