primer commit
This commit is contained in:
		
							
								
								
									
										66
									
								
								config/config.exs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								config/config.exs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | ||||
| # This file is responsible for configuring your application | ||||
| # and its dependencies with the aid of the Config module. | ||||
| # | ||||
| # This configuration file is loaded before any dependency and | ||||
| # is restricted to this project. | ||||
|  | ||||
| # General application configuration | ||||
| import Config | ||||
|  | ||||
| config :derivantes, | ||||
|   ecto_repos: [Derivantes.Repo], | ||||
|   generators: [timestamp_type: :utc_datetime] | ||||
|  | ||||
| # Configures the endpoint | ||||
| config :derivantes, DerivantesWeb.Endpoint, | ||||
|   url: [host: "localhost"], | ||||
|   adapter: Phoenix.Endpoint.Cowboy2Adapter, | ||||
|   render_errors: [ | ||||
|     formats: [html: DerivantesWeb.ErrorHTML, json: DerivantesWeb.ErrorJSON], | ||||
|     layout: false | ||||
|   ], | ||||
|   pubsub_server: Derivantes.PubSub, | ||||
|   live_view: [signing_salt: "cYL7udpP"] | ||||
|  | ||||
| # Configures the mailer | ||||
| # | ||||
| # By default it uses the "Local" adapter which stores the emails | ||||
| # locally. You can see the emails in your browser, at "/dev/mailbox". | ||||
| # | ||||
| # For production it's recommended to configure a different adapter | ||||
| # at the `config/runtime.exs`. | ||||
| config :derivantes, Derivantes.Mailer, adapter: Swoosh.Adapters.Local | ||||
|  | ||||
| # Configure esbuild (the version is required) | ||||
| config :esbuild, | ||||
|   version: "0.17.11", | ||||
|   default: [ | ||||
|     args: | ||||
|       ~w(js/app.js --bundle --target=es2017 --outdir=../priv/static/assets --external:/fonts/* --external:/images/*), | ||||
|     cd: Path.expand("../assets", __DIR__), | ||||
|     env: %{"NODE_PATH" => Path.expand("../deps", __DIR__)} | ||||
|   ] | ||||
|  | ||||
| # Configure tailwind (the version is required) | ||||
| config :tailwind, | ||||
|   version: "3.3.2", | ||||
|   default: [ | ||||
|     args: ~w( | ||||
|       --config=tailwind.config.js | ||||
|       --input=css/app.css | ||||
|       --output=../priv/static/assets/app.css | ||||
|     ), | ||||
|     cd: Path.expand("../assets", __DIR__) | ||||
|   ] | ||||
|  | ||||
| # Configures Elixir's Logger | ||||
| config :logger, :console, | ||||
|   format: "$time $metadata[$level] $message\n", | ||||
|   metadata: [:request_id] | ||||
|  | ||||
| # Use Jason for JSON parsing in Phoenix | ||||
| config :phoenix, :json_library, Jason | ||||
|  | ||||
| # Import environment specific config. This must remain at the bottom | ||||
| # of this file so it overrides the configuration defined above. | ||||
| import_config "#{config_env()}.exs" | ||||
							
								
								
									
										83
									
								
								config/dev.exs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								config/dev.exs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,83 @@ | ||||
| import Config | ||||
|  | ||||
| # Configure your database | ||||
| config :derivantes, Derivantes.Repo, | ||||
|   username: "postgres", | ||||
|   password: "1nf0rm3", | ||||
|   hostname: "localhost", | ||||
|   port: 5555, | ||||
|   database: "derivantes", | ||||
|   stacktrace: true, | ||||
|   show_sensitive_data_on_connection_error: true, | ||||
|   pool_size: 10 | ||||
|  | ||||
| # For development, we disable any cache and enable | ||||
| # debugging and code reloading. | ||||
| # | ||||
| # The watchers configuration can be used to run external | ||||
| # watchers to your application. For example, we can use it | ||||
| # to bundle .js and .css sources. | ||||
| config :derivantes, DerivantesWeb.Endpoint, | ||||
|   # Binding to loopback ipv4 address prevents access from other machines. | ||||
|   # Change to `ip: {0, 0, 0, 0}` to allow access from other machines. | ||||
|   http: [ip: {127, 0, 0, 1}, port: 4000], | ||||
|   check_origin: false, | ||||
|   code_reloader: true, | ||||
|   debug_errors: true, | ||||
|   secret_key_base: "+PlQ36b4FMBe0AqrxTsj02XgNajSITmW4gh34TREVC02woAU6JQSo/x3tjB7Xufx", | ||||
|   watchers: [ | ||||
|     esbuild: {Esbuild, :install_and_run, [:default, ~w(--sourcemap=inline --watch)]}, | ||||
|     tailwind: {Tailwind, :install_and_run, [:default, ~w(--watch)]} | ||||
|   ] | ||||
|  | ||||
| # ## SSL Support | ||||
| # | ||||
| # In order to use HTTPS in development, a self-signed | ||||
| # certificate can be generated by running the following | ||||
| # Mix task: | ||||
| # | ||||
| #     mix phx.gen.cert | ||||
| # | ||||
| # Run `mix help phx.gen.cert` for more information. | ||||
| # | ||||
| # The `http:` config above can be replaced with: | ||||
| # | ||||
| #     https: [ | ||||
| #       port: 4001, | ||||
| #       cipher_suite: :strong, | ||||
| #       keyfile: "priv/cert/selfsigned_key.pem", | ||||
| #       certfile: "priv/cert/selfsigned.pem" | ||||
| #     ], | ||||
| # | ||||
| # If desired, both `http:` and `https:` keys can be | ||||
| # configured to run both http and https servers on | ||||
| # different ports. | ||||
|  | ||||
| # Watch static and templates for browser reloading. | ||||
| config :derivantes, DerivantesWeb.Endpoint, | ||||
|   live_reload: [ | ||||
|     patterns: [ | ||||
|       ~r"priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$", | ||||
|       ~r"priv/gettext/.*(po)$", | ||||
|       ~r"lib/derivantes_web/(controllers|live|components)/.*(ex|heex)$" | ||||
|     ] | ||||
|   ] | ||||
|  | ||||
| # Enable dev routes for dashboard and mailbox | ||||
| config :derivantes, dev_routes: true | ||||
|  | ||||
| # Do not include metadata nor timestamps in development logs | ||||
| config :logger, :console, format: "[$level] $message\n" | ||||
|  | ||||
| # Set a higher stacktrace during development. Avoid configuring such | ||||
| # in production as building large stacktraces may be expensive. | ||||
| config :phoenix, :stacktrace_depth, 20 | ||||
|  | ||||
| # Initialize plugs at runtime for faster development compilation | ||||
| config :phoenix, :plug_init_mode, :runtime | ||||
|  | ||||
| # Include HEEx debug annotations as HTML comments in rendered markup | ||||
| config :phoenix_live_view, :debug_heex_annotations, true | ||||
|  | ||||
| # Disable swoosh api client as it is only required for production adapters. | ||||
| config :swoosh, :api_client, false | ||||
							
								
								
									
										21
									
								
								config/prod.exs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								config/prod.exs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| import Config | ||||
|  | ||||
| # Note we also include the path to a cache manifest | ||||
| # containing the digested version of static files. This | ||||
| # manifest is generated by the `mix assets.deploy` task, | ||||
| # which you should run after static files are built and | ||||
| # before starting your production server. | ||||
| config :derivantes, DerivantesWeb.Endpoint, | ||||
|   cache_static_manifest: "priv/static/cache_manifest.json" | ||||
|  | ||||
| # Configures Swoosh API Client | ||||
| config :swoosh, api_client: Swoosh.ApiClient.Finch, finch_name: Derivantes.Finch | ||||
|  | ||||
| # Disable Swoosh Local Memory Storage | ||||
| config :swoosh, local: false | ||||
|  | ||||
| # Do not print debug messages in production | ||||
| config :logger, level: :info | ||||
|  | ||||
| # Runtime production configuration, including reading | ||||
| # of environment variables, is done on config/runtime.exs. | ||||
							
								
								
									
										117
									
								
								config/runtime.exs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								config/runtime.exs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,117 @@ | ||||
| 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/derivantes 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 :derivantes, DerivantesWeb.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") in ~w(true 1), do: [:inet6], else: [] | ||||
|  | ||||
|   config :derivantes, Derivantes.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 :derivantes, :dns_cluster_query, System.get_env("DNS_CLUSTER_QUERY") | ||||
|  | ||||
|   config :derivantes, DerivantesWeb.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 | ||||
|  | ||||
|   # ## SSL Support | ||||
|   # | ||||
|   # To get SSL working, you will need to add the `https` key | ||||
|   # to your endpoint configuration: | ||||
|   # | ||||
|   #     config :derivantes, DerivantesWeb.Endpoint, | ||||
|   #       https: [ | ||||
|   #         ..., | ||||
|   #         port: 443, | ||||
|   #         cipher_suite: :strong, | ||||
|   #         keyfile: System.get_env("SOME_APP_SSL_KEY_PATH"), | ||||
|   #         certfile: System.get_env("SOME_APP_SSL_CERT_PATH") | ||||
|   #       ] | ||||
|   # | ||||
|   # The `cipher_suite` is set to `:strong` to support only the | ||||
|   # latest and more secure SSL ciphers. This means old browsers | ||||
|   # and clients may not be supported. You can set it to | ||||
|   # `:compatible` for wider support. | ||||
|   # | ||||
|   # `:keyfile` and `:certfile` expect an absolute path to the key | ||||
|   # and cert in disk or a relative path inside priv, for example | ||||
|   # "priv/ssl/server.key". For all supported SSL configuration | ||||
|   # options, see https://hexdocs.pm/plug/Plug.SSL.html#configure/1 | ||||
|   # | ||||
|   # We also recommend setting `force_ssl` in your endpoint, ensuring | ||||
|   # no data is ever sent via http, always redirecting to https: | ||||
|   # | ||||
|   #     config :derivantes, DerivantesWeb.Endpoint, | ||||
|   #       force_ssl: [hsts: true] | ||||
|   # | ||||
|   # Check `Plug.SSL` for all available options in `force_ssl`. | ||||
|  | ||||
|   # ## 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 :derivantes, Derivantes.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 | ||||
							
								
								
									
										36
									
								
								config/test.exs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								config/test.exs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | ||||
| import Config | ||||
|  | ||||
| # Only in tests, remove the complexity from the password hashing algorithm | ||||
| config :bcrypt_elixir, :log_rounds, 1 | ||||
|  | ||||
| # Configure your database | ||||
| # | ||||
| # The MIX_TEST_PARTITION environment variable can be used | ||||
| # to provide built-in test partitioning in CI environment. | ||||
| # Run `mix help test` for more information. | ||||
| config :derivantes, Derivantes.Repo, | ||||
|   username: "postgres", | ||||
|   password: "postgres", | ||||
|   hostname: "localhost", | ||||
|   database: "derivantes_test#{System.get_env("MIX_TEST_PARTITION")}", | ||||
|   pool: Ecto.Adapters.SQL.Sandbox, | ||||
|   pool_size: 10 | ||||
|  | ||||
| # We don't run a server during test. If one is required, | ||||
| # you can enable the server option below. | ||||
| config :derivantes, DerivantesWeb.Endpoint, | ||||
|   http: [ip: {127, 0, 0, 1}, port: 4002], | ||||
|   secret_key_base: "qyIZ0zRI8RvsKSnW8DhAENBOTlfGeTfwcEuUpsP9Xkgz6Jlip1hbouPRobFX8QMB", | ||||
|   server: false | ||||
|  | ||||
| # In test we don't send emails. | ||||
| config :derivantes, Derivantes.Mailer, adapter: Swoosh.Adapters.Test | ||||
|  | ||||
| # Disable swoosh api client as it is only required for production adapters. | ||||
| config :swoosh, :api_client, false | ||||
|  | ||||
| # Print only warnings and errors during test | ||||
| config :logger, level: :warning | ||||
|  | ||||
| # Initialize plugs at runtime for faster test compilation | ||||
| config :phoenix, :plug_init_mode, :runtime | ||||
		Reference in New Issue
	
	Block a user