An OTP application
$ rebar3 compile
Just create an application with rebar3
rebar3 new release myapp
in the config/sys.config file put this:
[ {lager, [ {handlers, [ {lager_console_backend, [info, {lager_default_formatter, [" ==> ", time, " [", severity, "]: ", message, "\n"]}]}, {lager_file_backend, [ {file, "log/error.log"}, {level, error}, {formatter, lager_default_formatter}, {formatter_config, [ date, " ", time, " [", severity, "] ", pid, " ", message, "\n"]}]}, {lager_file_backend, [ {file, "log/console.log"}, {level, info}, {formatter, lager_default_formatter}, {formatter_config, [ date, " ", time, " [", severity, "] ", pid, " ", message, "\n"]}]} ]}, {error_logger_hwm, 222250} ]}, {cowboy_enhancer, [ %% This is the main application name. {target_app, myapp}, {templates_dir, "/view/templates"}, %% shows more info in the console when system starts, %% more bigger the number is more detailed info is shown. %% 0 -> no info, 3 -> maximum details. {system_start_verbose_level, 2}, %% Database backends configuration. {database_manager, [ {main_backend, [ {backend, postgres_backend}, {server, "localhost"}, {username, "postgres"}, {password, "server"}, {database, "eoc_db"}, %% max amount of database connections in the connection pool. {max_reusable_connections, 10}, % 10 connections. %% max time to wait for an available connection. {wait_for_reusable_connection_timeout, 10000} % 10 seconds. ]} ]}, %% Configuration for session manager module. {session_manager, [ %% this is the default time in which sessions will expire. {session_expire_time, 36000000}, % 1 hour. %% this is the default frequency in which expired sessions will be %% recollected and deleted. {garbage_collector_frequency, 3600000} % 1 hour. ]} ]} ].
Configure it at will.
Then put the `cowvoy_enhancer' dependency in rebar.config file located in myapp folder,
{deps, [ {cowboy_enhancer, {git, "git://github.com/StartSWest/cowboy_enhancer.git", {branch, master}}}]}.
add the `cowvoy_enhancer' to the applications that need to be started
{relx, [{release, { myapp, "0.1.0" }, [myapp, sasl, cowboy_enhancer]},
remove sasl unless you really need it.
{relx, [{release, { myapp, "0.1.0" }, [myapp, cowboy_enhancer]},
to start the system in development mode with your application included:
rebar3 shell
see /doc
A proper documentation shall come soon.