From cdb719fe74d6f3f545ae049a206d79d60a176aa1 Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Mon, 28 Jun 2021 08:44:03 -0700 Subject: [PATCH] Rename fireguard -> cloudfire --- CONTRIBUTING.md | 8 +- README.md | 28 +++---- Vagrantfile | 2 +- ansible/playbook.yml | 20 ++--- apps/{fg_common => cf_common}/.formatter.exs | 0 apps/{fg_common => cf_common}/.gitignore | 0 apps/{fg_common => cf_common}/README.md | 8 +- apps/cf_common/lib/cf_common.ex | 5 ++ .../lib/cf_crypto.ex} | 2 +- .../lib/fg_map.ex => cf_common/lib/cf_map.ex} | 2 +- .../lib/fg_net.ex => cf_common/lib/cf_net.ex} | 2 +- apps/{fg_common => cf_common}/lib/cli.ex | 4 +- .../lib/name_generator.ex | 2 +- apps/{fg_common => cf_common}/mix.exs | 4 +- apps/cf_common/test/cf_common_test.exs | 4 + .../test/cf_crypto_test.exs} | 8 +- .../test/cf_map_test.exs} | 8 +- .../test/cf_net_test.exs} | 10 +-- .../test/name_generator_test.exs | 4 +- .../test/test_helper.exs | 0 apps/{fg_http => cf_http}/.formatter.exs | 0 apps/{fg_http => cf_http}/.gitignore | 0 apps/cf_http/README.md | 3 + apps/{fg_http => cf_http}/assets/.babelrc | 0 apps/{fg_http => cf_http}/assets/css/app.scss | 0 .../assets/css/email.scss | 0 .../{fg_http => cf_http}/assets/css/main.scss | 0 apps/{fg_http => cf_http}/assets/js/app.js | 0 apps/{fg_http => cf_http}/assets/js/hooks.js | 0 .../assets/package-lock.json | 0 apps/{fg_http => cf_http}/assets/package.json | 0 .../assets/postcss.config.js | 0 .../assets/static/favicon.ico | Bin .../assets/static/robots.txt | 0 .../assets/webpack.config.js | 0 apps/{fg_http => cf_http}/coveralls.json | 0 .../lib/fg_http.ex => cf_http/lib/cf_http.ex} | 4 +- .../lib/cf_http}/application.ex | 20 ++--- .../lib/cf_http}/devices.ex | 6 +- .../lib/cf_http}/devices/device.ex | 8 +- .../fg_http => cf_http/lib/cf_http}/email.ex | 12 +-- apps/cf_http/lib/cf_http/encrypted/binary.ex | 7 ++ apps/cf_http/lib/cf_http/mailer.ex | 7 ++ .../lib/cf_http}/password_resets.ex | 6 +- .../lib/cf_http}/release.ex | 10 +-- .../fg_http => cf_http/lib/cf_http}/repo.ex | 6 +- .../fg_http => cf_http/lib/cf_http}/rules.ex | 12 +-- .../lib/cf_http}/rules/rule.ex | 4 +- .../lib/cf_http}/sessions.ex | 6 +- .../fg_http => cf_http/lib/cf_http}/users.ex | 10 +-- .../lib/cf_http}/users/password_helpers.ex | 2 +- .../lib/cf_http}/users/password_reset.ex | 8 +- .../lib/cf_http}/users/session.ex | 4 +- .../lib/cf_http}/users/user.ex | 12 +-- apps/cf_http/lib/cf_http/vault.ex | 7 ++ .../lib/cf_http_web.ex} | 38 +++++----- .../lib/cf_http_web}/channels/user_socket.ex | 6 +- .../controllers/session_controller.ex | 6 +- .../controllers/user_controller.ex | 6 +- .../lib/cf_http_web}/endpoint.ex | 16 ++-- .../lib/cf_http_web}/events.ex | 8 +- .../lib/cf_http_web}/gettext.ex | 6 +- .../live/account_live/form_component.ex | 6 +- .../account_live/form_component.html.leex | 0 .../live/account_live/show.html.leex | 2 +- .../live/account_live/show_live.ex | 6 +- .../live/device_live/form_component.ex | 6 +- .../live/device_live/form_component.html.leex | 0 .../live/device_live/index.html.leex | 0 .../live/device_live/index_live.ex | 6 +- .../live/device_live/rule_list_component.ex | 6 +- .../device_live/rule_list_component.html.leex | 0 .../live/device_live/show.html.leex | 8 +- .../live/device_live/show_live.ex | 6 +- .../lib/cf_http_web}/live/modal_component.ex | 4 +- .../live/password_reset_live/edit.html.leex | 0 .../live/password_reset_live/edit_live.ex | 6 +- .../live/password_reset_live/new.html.leex | 0 .../live/password_reset_live/new_live.ex | 6 +- .../live/root_live/index.html.leex | 0 .../cf_http_web}/live/root_live/index_live.ex | 4 +- .../live/session_live/new.html.leex | 2 +- .../live/session_live/new_live.ex | 12 +-- .../cf_http_web}/live/user_live/new.html.leex | 0 .../cf_http_web}/live/user_live/new_live.ex | 6 +- .../lib/cf_http_web}/mock_events.ex | 8 +- .../lib/cf_http_web}/router.ex | 8 +- .../templates/email/password_reset.html.eex | 2 +- .../templates/email/password_reset.text.eex | 2 +- .../templates/layout/app.html.eex | 0 .../templates/layout/email.html.eex | 2 +- .../templates/layout/live.html.leex | 0 .../templates/layout/root.html.leex | 4 +- .../lib/cf_http_web/views/email_view.ex | 3 + .../lib/cf_http_web}/views/error_helpers.ex | 6 +- .../lib/cf_http_web}/views/error_view.ex | 4 +- .../lib/cf_http_web/views/layout_view.ex | 3 + .../lib/cf_http_web}/views/live_helpers.ex | 8 +- apps/{fg_http => cf_http}/mix.exs | 8 +- .../priv/gettext/en/LC_MESSAGES/errors.po | 0 .../priv/gettext/errors.pot | 0 .../priv/repo/migrations/.formatter.exs | 0 .../20200225005454_create_users.exs | 2 +- .../20200228145810_create_devices.exs | 2 +- .../20200228154815_create_rules.exs | 2 +- apps/{fg_http => cf_http}/priv/repo/seeds.exs | 4 +- .../screenshots/1614180004684960000.png | Bin 0 -> 67780 bytes .../screenshots/1614180042111815000.png | Bin 0 -> 67780 bytes .../screenshots/1614204068224109000.png | Bin 0 -> 64703 bytes .../screenshots/1614204071570647000.png | Bin 0 -> 57688 bytes .../screenshots/1614204079449173000.png | Bin 0 -> 67780 bytes .../screenshots/1614204399169962000.png | Bin 0 -> 64703 bytes .../screenshots/1614204400978976000.png | Bin 0 -> 67780 bytes .../screenshots/1614204407483922000.png | Bin 0 -> 57688 bytes .../screenshots/1614653809881605000.png | Bin 0 -> 26198 bytes .../screenshots/1614657007406656000.png | Bin 0 -> 26198 bytes .../screenshots/1614657087665692000.png | Bin 0 -> 68104 bytes .../screenshots/1614657090566309000.png | Bin 0 -> 58071 bytes .../screenshots/1614657099690629000.png | Bin 0 -> 64703 bytes .../screenshots/1614657202804547000.png | Bin 0 -> 58071 bytes .../screenshots/1614657208806168000.png | Bin 0 -> 64703 bytes .../screenshots/1614657212271562000.png | Bin 0 -> 68104 bytes .../screenshots/1614657451851164000.png | Bin 0 -> 58071 bytes .../screenshots/1614657457691713000.png | Bin 0 -> 68104 bytes .../screenshots/1614657460299559000.png | Bin 0 -> 64703 bytes .../screenshots/1614657603587654000.png | Bin 0 -> 64703 bytes .../screenshots/1614657607276527000.png | Bin 0 -> 58071 bytes .../screenshots/1614657612433698000.png | Bin 0 -> 68104 bytes .../screenshots/1614657786931000000.png | Bin 0 -> 64703 bytes .../screenshots/1614657791403203000.png | Bin 0 -> 58071 bytes .../screenshots/1614657797751031000.png | Bin 0 -> 68104 bytes .../screenshots/1614657992846869000.png | Bin 0 -> 58071 bytes .../screenshots/1614657998826627000.png | Bin 0 -> 68104 bytes .../screenshots/1614658004265513000.png | Bin 0 -> 64703 bytes .../screenshots/1614658174695962000.png | Bin 0 -> 68104 bytes .../screenshots/1614658178305414000.png | Bin 0 -> 64703 bytes .../screenshots/1614658182787732000.png | Bin 0 -> 58071 bytes .../screenshots/1614658288937117000.png | Bin 0 -> 64703 bytes .../screenshots/1614658291781499000.png | Bin 0 -> 58071 bytes .../screenshots/1614658299331132000.png | Bin 0 -> 68104 bytes .../screenshots/1614658364756661000.png | Bin 0 -> 68104 bytes .../screenshots/1614658366656504000.png | Bin 0 -> 64703 bytes .../screenshots/1614658372192964000.png | Bin 0 -> 58071 bytes .../screenshots/1614658602635263000.png | Bin 0 -> 58071 bytes .../screenshots/1614658608043705000.png | Bin 0 -> 68104 bytes .../screenshots/1614658612882225000.png | Bin 0 -> 64703 bytes .../screenshots/1614659408308584000.png | Bin 0 -> 64703 bytes .../screenshots/1614659412992102000.png | Bin 0 -> 68104 bytes .../screenshots/1614659416269465000.png | Bin 0 -> 58071 bytes .../screenshots/1614659459752303000.png | Bin 0 -> 58071 bytes .../screenshots/1614659465716241000.png | Bin 0 -> 68104 bytes .../screenshots/1614659469422787000.png | Bin 0 -> 64703 bytes .../screenshots/1614659763615871000.png | Bin 0 -> 68104 bytes .../screenshots/1614659770012419000.png | Bin 0 -> 64703 bytes .../screenshots/1614659779847387000.png | Bin 0 -> 58071 bytes .../screenshots/1614659834472195000.png | Bin 0 -> 68104 bytes .../screenshots/1614659836647851000.png | Bin 0 -> 58071 bytes .../screenshots/1614659842382279000.png | Bin 0 -> 64703 bytes .../screenshots/1614659886035803000.png | Bin 0 -> 68104 bytes .../screenshots/1614659887927979000.png | Bin 0 -> 64703 bytes .../screenshots/1614659891381545000.png | Bin 0 -> 58071 bytes .../screenshots/1614659950876642000.png | Bin 0 -> 64703 bytes .../screenshots/1614659955963660000.png | Bin 0 -> 58071 bytes .../screenshots/1614659960763159000.png | Bin 0 -> 68104 bytes .../screenshots/1614660038143913000.png | Bin 0 -> 58071 bytes .../screenshots/1614660047606311000.png | Bin 0 -> 68104 bytes .../screenshots/1614660051030379000.png | Bin 0 -> 64703 bytes .../screenshots/1614660145218783000.png | Bin 0 -> 58071 bytes .../screenshots/1614660151000755000.png | Bin 0 -> 64703 bytes .../screenshots/1614660155800692000.png | Bin 0 -> 68104 bytes .../screenshots/1614660221435786000.png | Bin 0 -> 68104 bytes .../screenshots/1614660225365385000.png | Bin 0 -> 58071 bytes .../screenshots/1614660232653843000.png | Bin 0 -> 64703 bytes .../screenshots/1614695901182466000.png | Bin 0 -> 58071 bytes .../screenshots/1614695913855268000.png | Bin 0 -> 68104 bytes .../screenshots/1614695919336131000.png | Bin 0 -> 64703 bytes .../screenshots/1614698432628790000.png | Bin 0 -> 58071 bytes .../screenshots/1614698440351104000.png | Bin 0 -> 68104 bytes .../screenshots/1614698445346681000.png | Bin 0 -> 64703 bytes .../screenshots/1614699116304601000.png | Bin 0 -> 68104 bytes .../screenshots/1614699120519085000.png | Bin 0 -> 58071 bytes .../screenshots/1614699128526637000.png | Bin 0 -> 64703 bytes .../screenshots/1614701549329217000.png | Bin 0 -> 64703 bytes .../screenshots/1614701551410451000.png | Bin 0 -> 68104 bytes .../screenshots/1614701554066696000.png | Bin 0 -> 58071 bytes .../screenshots/1614787261817509000.png | Bin 0 -> 64703 bytes .../screenshots/1614787267078819000.png | Bin 0 -> 58071 bytes .../screenshots/1614787274621068000.png | Bin 0 -> 68104 bytes .../screenshots/1614787308981517000.png | Bin 0 -> 64703 bytes .../screenshots/1614787313611125000.png | Bin 0 -> 58071 bytes .../screenshots/1614787318710133000.png | Bin 0 -> 68104 bytes .../screenshots/1614787512565608000.png | Bin 0 -> 68104 bytes .../screenshots/1614787514974205000.png | Bin 0 -> 64703 bytes .../screenshots/1614787517114001000.png | Bin 0 -> 58071 bytes .../screenshots/1614811032772566000.png | Bin 0 -> 64703 bytes .../screenshots/1614811035764827000.png | Bin 0 -> 68104 bytes .../screenshots/1614811039232330000.png | Bin 0 -> 58071 bytes .../screenshots/1614811065003385000.png | Bin 0 -> 58071 bytes .../screenshots/1614811071265246000.png | Bin 0 -> 64703 bytes .../screenshots/1614811077205877000.png | Bin 0 -> 68104 bytes .../screenshots/1614811584504296000.png | Bin 0 -> 68104 bytes .../screenshots/1614811588100014000.png | Bin 0 -> 64703 bytes .../screenshots/1614811591798341000.png | Bin 0 -> 58071 bytes .../screenshots/1614811818297889000.png | Bin 0 -> 68104 bytes .../screenshots/1614811820493657000.png | Bin 0 -> 64703 bytes .../screenshots/1614811824426276000.png | Bin 0 -> 58071 bytes .../screenshots/1614811987803550000.png | Bin 0 -> 68104 bytes .../screenshots/1614811990361343000.png | Bin 0 -> 64703 bytes .../screenshots/1614811993615168000.png | Bin 0 -> 58071 bytes .../screenshots/1614864348902478000.png | Bin 0 -> 7794 bytes .../screenshots/1614864667620835000.png | Bin 0 -> 58071 bytes .../screenshots/1614864672519787000.png | Bin 0 -> 64703 bytes .../screenshots/1614864674880767000.png | Bin 0 -> 68104 bytes .../screenshots/1614865513169314000.png | Bin 0 -> 58071 bytes .../screenshots/1614865521836565000.png | Bin 0 -> 68104 bytes .../screenshots/1614865524176752000.png | Bin 0 -> 64703 bytes .../screenshots/1614866156437555000.png | Bin 0 -> 26198 bytes .../screenshots/1614866399264935000.png | Bin 0 -> 26198 bytes .../screenshots/1614866477740915000.png | Bin 0 -> 58071 bytes .../screenshots/1614866488582759000.png | Bin 0 -> 68104 bytes .../screenshots/1614866490487773000.png | Bin 0 -> 64703 bytes .../screenshots/1614866544155546000.png | Bin 0 -> 68104 bytes .../screenshots/1614866548922855000.png | Bin 0 -> 64703 bytes .../screenshots/1614866553334884000.png | Bin 0 -> 58071 bytes .../screenshots/1614869833862799000.png | Bin 0 -> 64703 bytes .../screenshots/1614869836124457000.png | Bin 0 -> 58071 bytes .../screenshots/1614869841105267000.png | Bin 0 -> 68104 bytes .../screenshots/1614870861034534000.png | Bin 0 -> 68104 bytes .../screenshots/1614870862890727000.png | Bin 0 -> 58071 bytes .../screenshots/1614870869401317000.png | Bin 0 -> 64703 bytes .../screenshots/1614871139803059000.png | Bin 0 -> 68104 bytes .../screenshots/1614871142475363000.png | Bin 0 -> 58071 bytes .../screenshots/1614871150472372000.png | Bin 0 -> 64703 bytes .../screenshots/1615256546027468000.png | Bin 0 -> 58071 bytes .../screenshots/1615256551006001000.png | Bin 0 -> 64703 bytes .../screenshots/1615256553015668000.png | Bin 0 -> 68104 bytes .../screenshots/1615987555880147000.png | Bin 0 -> 57866 bytes .../screenshots/1615987566524557000.png | Bin 0 -> 65698 bytes .../screenshots/1615987568167227000.png | Bin 0 -> 67902 bytes .../screenshots/1615988128474107000.png | Bin 0 -> 57866 bytes .../screenshots/1615988133208137000.png | Bin 0 -> 67902 bytes .../screenshots/1615988135696715000.png | Bin 0 -> 65698 bytes .../screenshots/1615988320882346000.png | Bin 0 -> 57866 bytes .../screenshots/1615988326647903000.png | Bin 0 -> 67902 bytes .../screenshots/1615988328881137000.png | Bin 0 -> 65698 bytes .../screenshots/1615988425798335000.png | Bin 0 -> 65698 bytes .../screenshots/1615988428276135000.png | Bin 0 -> 57866 bytes .../screenshots/1615988433343163000.png | Bin 0 -> 67902 bytes .../screenshots/1615988603009620000.png | Bin 0 -> 67901 bytes .../screenshots/1615988605693515000.png | Bin 0 -> 65698 bytes .../screenshots/1615988608341905000.png | Bin 0 -> 57875 bytes .../screenshots/1615988658988566000.png | Bin 0 -> 65698 bytes .../screenshots/1615988664005112000.png | Bin 0 -> 57875 bytes .../screenshots/1615988669648253000.png | Bin 0 -> 67901 bytes .../screenshots/1615991038797022000.png | Bin 0 -> 65698 bytes .../screenshots/1615991041358283000.png | Bin 0 -> 57875 bytes .../screenshots/1615991046979560000.png | Bin 0 -> 67901 bytes .../screenshots/1615992325433593000.png | Bin 0 -> 67901 bytes .../screenshots/1615992327943788000.png | Bin 0 -> 57875 bytes .../screenshots/1615992333313188000.png | Bin 0 -> 65698 bytes .../test/cf_http}/devices_test.exs | 6 +- .../test/cf_http}/password_resets_test.exs | 6 +- .../test/cf_http}/release_test.exs | 8 +- .../test/cf_http}/rules_test.exs | 6 +- .../test/cf_http}/sessions_test.exs | 6 +- .../test/cf_http}/users_test.exs | 6 +- .../controllers/session_controller_test.exs | 4 +- .../controllers/user_controller_test.exs | 6 +- .../live/account_live/show_test.exs | 8 +- .../live/device_live/index_test.exs | 6 +- .../live/device_live/show_test.exs | 4 +- .../live/password_reset_live/edit_test.exs | 4 +- .../live/password_reset_live/new_test.exs | 4 +- .../cf_http_web/live/root_live/index_test.exs | 3 + .../live/session_live/new_test.exs | 6 +- .../cf_http_web}/live/user_live/new_test.exs | 6 +- .../cf_http_web}/views/error_view_test.exs | 8 +- .../cf_http_web}/views/layout_view_test.exs | 4 +- .../test/support/channel_case.ex | 12 +-- .../test/support/conn_case.ex | 16 ++-- .../test/support/data_case.ex | 14 ++-- .../test/support/fixtures.ex | 4 +- .../test/support/mock_helpers.ex | 8 +- .../test/support/test_helpers.ex | 4 +- apps/cf_http/test/test_helper.exs | 2 + apps/{fg_vpn => cf_vpn}/.formatter.exs | 0 apps/{fg_vpn => cf_vpn}/.gitignore | 1 - apps/{fg_vpn => cf_vpn}/README.md | 2 +- apps/{fg_vpn => cf_vpn}/coveralls.json | 2 +- apps/cf_vpn/lib/cf_vpn.ex | 5 ++ .../lib/cf_vpn}/application.ex | 6 +- .../lib/fg_vpn => cf_vpn/lib/cf_vpn}/cli.ex | 4 +- .../fg_vpn => cf_vpn/lib/cf_vpn}/cli/live.ex | 12 +-- .../lib/cf_vpn}/cli/sandbox.ex | 2 +- .../fg_vpn => cf_vpn/lib/cf_vpn}/config.ex | 6 +- .../lib/fg_vpn => cf_vpn/lib/cf_vpn}/peer.ex | 2 +- .../fg_vpn => cf_vpn/lib/cf_vpn}/server.ex | 8 +- apps/{fg_vpn => cf_vpn}/mix.exs | 10 +-- .../test/cf_vpn}/cli/sandbox_test.exs | 4 +- .../test/cf_vpn}/config_test.exs | 4 +- .../test/cf_vpn}/server_test.exs | 6 +- apps/cf_vpn/test/cf_vpn_test.exs | 4 + .../{fg_vpn => cf_vpn}/test/fixtures/.gitkeep | 0 apps/{fg_vpn => cf_vpn}/test/test_helper.exs | 0 apps/{fg_wall => cf_wall}/.formatter.exs | 0 apps/{fg_wall => cf_wall}/.gitignore | 1 - apps/{fg_wall => cf_wall}/README.md | 2 +- .../lib/fg_wall.ex => cf_wall/lib/cf_wall.ex} | 6 +- .../lib/cf_wall}/application.ex | 6 +- .../fg_wall => cf_wall/lib/cf_wall}/cli.ex | 4 +- apps/cf_wall/lib/cf_wall/cli/live.ex | 70 ++++++++++++++++++ .../lib/cf_wall}/cli/sandbox.ex | 4 +- .../fg_wall => cf_wall/lib/cf_wall}/server.ex | 10 +-- apps/{fg_wall => cf_wall}/mix.exs | 10 +-- apps/cf_wall/test/cf_wall_test.exs | 4 + .../{fg_wall => cf_wall}/test/test_helper.exs | 0 apps/fg_common/lib/fg_common.ex | 5 -- apps/fg_common/test/fg_common_test.exs | 4 - apps/fg_http/README.md | 3 - apps/fg_http/lib/fg_http/encrypted/binary.ex | 7 -- apps/fg_http/lib/fg_http/mailer.ex | 7 -- apps/fg_http/lib/fg_http/vault.ex | 7 -- .../lib/fg_http_web/views/email_view.ex | 3 - .../lib/fg_http_web/views/layout_view.ex | 3 - .../fg_http_web/live/root_live/index_test.exs | 3 - apps/fg_http/test/test_helper.exs | 2 - apps/fg_vpn/lib/fg_vpn.ex | 5 -- apps/fg_vpn/test/fg_vpn_test.exs | 4 - apps/fg_wall/lib/fg_wall/cli/live.ex | 70 ------------------ apps/fg_wall/test/fg_wall_test.exs | 4 - config/config.exs | 24 +++--- config/dev.exs | 28 +++---- config/prod.exs | 24 +++--- config/releases.exs | 18 ++--- config/test.exs | 16 ++-- docs/CNAME | 2 +- docs/css/style.css | 12 +-- docs/index.html | 6 +- mix.exs | 12 +-- pkg/Dockerfile | 22 +++--- pkg/ubuntu-20.04/DEBIAN/control | 2 +- pkg/ubuntu-20.04/DEBIAN/postinst | 54 +++++++------- pkg/ubuntu-20.04/DEBIAN/templates | 8 +- .../lib/systemd/system/fireguard.service | 6 +- .../{start_fg_http.sh => start_cf_http.sh} | 2 +- 345 files changed, 616 insertions(+), 618 deletions(-) rename apps/{fg_common => cf_common}/.formatter.exs (100%) rename apps/{fg_common => cf_common}/.gitignore (100%) rename apps/{fg_common => cf_common}/README.md (66%) create mode 100644 apps/cf_common/lib/cf_common.ex rename apps/{fg_common/lib/fg_crypto.ex => cf_common/lib/cf_crypto.ex} (91%) rename apps/{fg_common/lib/fg_map.ex => cf_common/lib/cf_map.ex} (94%) rename apps/{fg_common/lib/fg_net.ex => cf_common/lib/cf_net.ex} (94%) rename apps/{fg_common => cf_common}/lib/cli.ex (81%) rename apps/{fg_common => cf_common}/lib/name_generator.ex (99%) rename apps/{fg_common => cf_common}/mix.exs (92%) create mode 100644 apps/cf_common/test/cf_common_test.exs rename apps/{fg_common/test/fg_crypto_test.exs => cf_common/test/cf_crypto_test.exs} (57%) rename apps/{fg_common/test/fg_map_test.exs => cf_common/test/cf_map_test.exs} (61%) rename apps/{fg_common/test/fg_net_test.exs => cf_common/test/cf_net_test.exs} (53%) rename apps/{fg_common => cf_common}/test/name_generator_test.exs (82%) rename apps/{fg_common => cf_common}/test/test_helper.exs (100%) rename apps/{fg_http => cf_http}/.formatter.exs (100%) rename apps/{fg_http => cf_http}/.gitignore (100%) create mode 100644 apps/cf_http/README.md rename apps/{fg_http => cf_http}/assets/.babelrc (100%) rename apps/{fg_http => cf_http}/assets/css/app.scss (100%) rename apps/{fg_http => cf_http}/assets/css/email.scss (100%) rename apps/{fg_http => cf_http}/assets/css/main.scss (100%) rename apps/{fg_http => cf_http}/assets/js/app.js (100%) rename apps/{fg_http => cf_http}/assets/js/hooks.js (100%) rename apps/{fg_http => cf_http}/assets/package-lock.json (100%) rename apps/{fg_http => cf_http}/assets/package.json (100%) rename apps/{fg_http => cf_http}/assets/postcss.config.js (100%) rename apps/{fg_http => cf_http}/assets/static/favicon.ico (100%) rename apps/{fg_http => cf_http}/assets/static/robots.txt (100%) rename apps/{fg_http => cf_http}/assets/webpack.config.js (100%) rename apps/{fg_http => cf_http}/coveralls.json (100%) rename apps/{fg_http/lib/fg_http.ex => cf_http/lib/cf_http.ex} (71%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/application.ex (60%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/devices.ex (92%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/devices/device.ex (86%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/email.ex (55%) create mode 100644 apps/cf_http/lib/cf_http/encrypted/binary.ex create mode 100644 apps/cf_http/lib/cf_http/mailer.ex rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/password_resets.ex (93%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/release.ex (89%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/repo.ex (71%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/rules.ex (88%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/rules/rule.ex (91%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/sessions.ex (92%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/users.ex (94%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/users/password_helpers.ex (95%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/users/password_reset.ex (92%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/users/session.ex (94%) rename apps/{fg_http/lib/fg_http => cf_http/lib/cf_http}/users/user.ex (94%) create mode 100644 apps/cf_http/lib/cf_http/vault.ex rename apps/{fg_http/lib/fg_http_web.ex => cf_http/lib/cf_http_web.ex} (71%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/channels/user_socket.ex (86%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/controllers/session_controller.ex (89%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/controllers/user_controller.ex (92%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/endpoint.ex (81%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/events.ex (83%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/gettext.ex (86%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/account_live/form_component.ex (86%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/account_live/form_component.html.leex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/account_live/show.html.leex (96%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/account_live/show_live.ex (82%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/device_live/form_component.ex (86%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/device_live/form_component.html.leex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/device_live/index.html.leex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/device_live/index_live.ex (92%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/device_live/rule_list_component.ex (94%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/device_live/rule_list_component.html.leex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/device_live/show.html.leex (94%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/device_live/show_live.ex (93%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/modal_component.ex (93%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/password_reset_live/edit.html.leex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/password_reset_live/edit_live.ex (92%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/password_reset_live/new.html.leex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/password_reset_live/new_live.ex (92%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/root_live/index.html.leex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/root_live/index_live.ex (84%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/session_live/new.html.leex (95%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/session_live/new_live.ex (89%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/user_live/new.html.leex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/live/user_live/new_live.ex (87%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/mock_events.ex (73%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/router.ex (88%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/templates/email/password_reset.html.eex (53%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/templates/email/password_reset.text.eex (58%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/templates/layout/app.html.eex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/templates/layout/email.html.eex (64%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/templates/layout/live.html.leex (100%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/templates/layout/root.html.leex (95%) create mode 100644 apps/cf_http/lib/cf_http_web/views/email_view.ex rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/views/error_helpers.ex (91%) rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/views/error_view.ex (88%) create mode 100644 apps/cf_http/lib/cf_http_web/views/layout_view.ex rename apps/{fg_http/lib/fg_http_web => cf_http/lib/cf_http_web}/views/live_helpers.ex (87%) rename apps/{fg_http => cf_http}/mix.exs (95%) rename apps/{fg_http => cf_http}/priv/gettext/en/LC_MESSAGES/errors.po (100%) rename apps/{fg_http => cf_http}/priv/gettext/errors.pot (100%) rename apps/{fg_http => cf_http}/priv/repo/migrations/.formatter.exs (100%) rename apps/{fg_http => cf_http}/priv/repo/migrations/20200225005454_create_users.exs (93%) rename apps/{fg_http => cf_http}/priv/repo/migrations/20200228145810_create_devices.exs (94%) rename apps/{fg_http => cf_http}/priv/repo/migrations/20200228154815_create_rules.exs (92%) rename apps/{fg_http => cf_http}/priv/repo/seeds.exs (92%) create mode 100644 apps/cf_http/screenshots/1614180004684960000.png create mode 100644 apps/cf_http/screenshots/1614180042111815000.png create mode 100644 apps/cf_http/screenshots/1614204068224109000.png create mode 100644 apps/cf_http/screenshots/1614204071570647000.png create mode 100644 apps/cf_http/screenshots/1614204079449173000.png create mode 100644 apps/cf_http/screenshots/1614204399169962000.png create mode 100644 apps/cf_http/screenshots/1614204400978976000.png create mode 100644 apps/cf_http/screenshots/1614204407483922000.png create mode 100644 apps/cf_http/screenshots/1614653809881605000.png create mode 100644 apps/cf_http/screenshots/1614657007406656000.png create mode 100644 apps/cf_http/screenshots/1614657087665692000.png create mode 100644 apps/cf_http/screenshots/1614657090566309000.png create mode 100644 apps/cf_http/screenshots/1614657099690629000.png create mode 100644 apps/cf_http/screenshots/1614657202804547000.png create mode 100644 apps/cf_http/screenshots/1614657208806168000.png create mode 100644 apps/cf_http/screenshots/1614657212271562000.png create mode 100644 apps/cf_http/screenshots/1614657451851164000.png create mode 100644 apps/cf_http/screenshots/1614657457691713000.png create mode 100644 apps/cf_http/screenshots/1614657460299559000.png create mode 100644 apps/cf_http/screenshots/1614657603587654000.png create mode 100644 apps/cf_http/screenshots/1614657607276527000.png create mode 100644 apps/cf_http/screenshots/1614657612433698000.png create mode 100644 apps/cf_http/screenshots/1614657786931000000.png create mode 100644 apps/cf_http/screenshots/1614657791403203000.png create mode 100644 apps/cf_http/screenshots/1614657797751031000.png create mode 100644 apps/cf_http/screenshots/1614657992846869000.png create mode 100644 apps/cf_http/screenshots/1614657998826627000.png create mode 100644 apps/cf_http/screenshots/1614658004265513000.png create mode 100644 apps/cf_http/screenshots/1614658174695962000.png create mode 100644 apps/cf_http/screenshots/1614658178305414000.png create mode 100644 apps/cf_http/screenshots/1614658182787732000.png create mode 100644 apps/cf_http/screenshots/1614658288937117000.png create mode 100644 apps/cf_http/screenshots/1614658291781499000.png create mode 100644 apps/cf_http/screenshots/1614658299331132000.png create mode 100644 apps/cf_http/screenshots/1614658364756661000.png create mode 100644 apps/cf_http/screenshots/1614658366656504000.png create mode 100644 apps/cf_http/screenshots/1614658372192964000.png create mode 100644 apps/cf_http/screenshots/1614658602635263000.png create mode 100644 apps/cf_http/screenshots/1614658608043705000.png create mode 100644 apps/cf_http/screenshots/1614658612882225000.png create mode 100644 apps/cf_http/screenshots/1614659408308584000.png create mode 100644 apps/cf_http/screenshots/1614659412992102000.png create mode 100644 apps/cf_http/screenshots/1614659416269465000.png create mode 100644 apps/cf_http/screenshots/1614659459752303000.png create mode 100644 apps/cf_http/screenshots/1614659465716241000.png create mode 100644 apps/cf_http/screenshots/1614659469422787000.png create mode 100644 apps/cf_http/screenshots/1614659763615871000.png create mode 100644 apps/cf_http/screenshots/1614659770012419000.png create mode 100644 apps/cf_http/screenshots/1614659779847387000.png create mode 100644 apps/cf_http/screenshots/1614659834472195000.png create mode 100644 apps/cf_http/screenshots/1614659836647851000.png create mode 100644 apps/cf_http/screenshots/1614659842382279000.png create mode 100644 apps/cf_http/screenshots/1614659886035803000.png create mode 100644 apps/cf_http/screenshots/1614659887927979000.png create mode 100644 apps/cf_http/screenshots/1614659891381545000.png create mode 100644 apps/cf_http/screenshots/1614659950876642000.png create mode 100644 apps/cf_http/screenshots/1614659955963660000.png create mode 100644 apps/cf_http/screenshots/1614659960763159000.png create mode 100644 apps/cf_http/screenshots/1614660038143913000.png create mode 100644 apps/cf_http/screenshots/1614660047606311000.png create mode 100644 apps/cf_http/screenshots/1614660051030379000.png create mode 100644 apps/cf_http/screenshots/1614660145218783000.png create mode 100644 apps/cf_http/screenshots/1614660151000755000.png create mode 100644 apps/cf_http/screenshots/1614660155800692000.png create mode 100644 apps/cf_http/screenshots/1614660221435786000.png create mode 100644 apps/cf_http/screenshots/1614660225365385000.png create mode 100644 apps/cf_http/screenshots/1614660232653843000.png create mode 100644 apps/cf_http/screenshots/1614695901182466000.png create mode 100644 apps/cf_http/screenshots/1614695913855268000.png create mode 100644 apps/cf_http/screenshots/1614695919336131000.png create mode 100644 apps/cf_http/screenshots/1614698432628790000.png create mode 100644 apps/cf_http/screenshots/1614698440351104000.png create mode 100644 apps/cf_http/screenshots/1614698445346681000.png create mode 100644 apps/cf_http/screenshots/1614699116304601000.png create mode 100644 apps/cf_http/screenshots/1614699120519085000.png create mode 100644 apps/cf_http/screenshots/1614699128526637000.png create mode 100644 apps/cf_http/screenshots/1614701549329217000.png create mode 100644 apps/cf_http/screenshots/1614701551410451000.png create mode 100644 apps/cf_http/screenshots/1614701554066696000.png create mode 100644 apps/cf_http/screenshots/1614787261817509000.png create mode 100644 apps/cf_http/screenshots/1614787267078819000.png create mode 100644 apps/cf_http/screenshots/1614787274621068000.png create mode 100644 apps/cf_http/screenshots/1614787308981517000.png create mode 100644 apps/cf_http/screenshots/1614787313611125000.png create mode 100644 apps/cf_http/screenshots/1614787318710133000.png create mode 100644 apps/cf_http/screenshots/1614787512565608000.png create mode 100644 apps/cf_http/screenshots/1614787514974205000.png create mode 100644 apps/cf_http/screenshots/1614787517114001000.png create mode 100644 apps/cf_http/screenshots/1614811032772566000.png create mode 100644 apps/cf_http/screenshots/1614811035764827000.png create mode 100644 apps/cf_http/screenshots/1614811039232330000.png create mode 100644 apps/cf_http/screenshots/1614811065003385000.png create mode 100644 apps/cf_http/screenshots/1614811071265246000.png create mode 100644 apps/cf_http/screenshots/1614811077205877000.png create mode 100644 apps/cf_http/screenshots/1614811584504296000.png create mode 100644 apps/cf_http/screenshots/1614811588100014000.png create mode 100644 apps/cf_http/screenshots/1614811591798341000.png create mode 100644 apps/cf_http/screenshots/1614811818297889000.png create mode 100644 apps/cf_http/screenshots/1614811820493657000.png create mode 100644 apps/cf_http/screenshots/1614811824426276000.png create mode 100644 apps/cf_http/screenshots/1614811987803550000.png create mode 100644 apps/cf_http/screenshots/1614811990361343000.png create mode 100644 apps/cf_http/screenshots/1614811993615168000.png create mode 100644 apps/cf_http/screenshots/1614864348902478000.png create mode 100644 apps/cf_http/screenshots/1614864667620835000.png create mode 100644 apps/cf_http/screenshots/1614864672519787000.png create mode 100644 apps/cf_http/screenshots/1614864674880767000.png create mode 100644 apps/cf_http/screenshots/1614865513169314000.png create mode 100644 apps/cf_http/screenshots/1614865521836565000.png create mode 100644 apps/cf_http/screenshots/1614865524176752000.png create mode 100644 apps/cf_http/screenshots/1614866156437555000.png create mode 100644 apps/cf_http/screenshots/1614866399264935000.png create mode 100644 apps/cf_http/screenshots/1614866477740915000.png create mode 100644 apps/cf_http/screenshots/1614866488582759000.png create mode 100644 apps/cf_http/screenshots/1614866490487773000.png create mode 100644 apps/cf_http/screenshots/1614866544155546000.png create mode 100644 apps/cf_http/screenshots/1614866548922855000.png create mode 100644 apps/cf_http/screenshots/1614866553334884000.png create mode 100644 apps/cf_http/screenshots/1614869833862799000.png create mode 100644 apps/cf_http/screenshots/1614869836124457000.png create mode 100644 apps/cf_http/screenshots/1614869841105267000.png create mode 100644 apps/cf_http/screenshots/1614870861034534000.png create mode 100644 apps/cf_http/screenshots/1614870862890727000.png create mode 100644 apps/cf_http/screenshots/1614870869401317000.png create mode 100644 apps/cf_http/screenshots/1614871139803059000.png create mode 100644 apps/cf_http/screenshots/1614871142475363000.png create mode 100644 apps/cf_http/screenshots/1614871150472372000.png create mode 100644 apps/cf_http/screenshots/1615256546027468000.png create mode 100644 apps/cf_http/screenshots/1615256551006001000.png create mode 100644 apps/cf_http/screenshots/1615256553015668000.png create mode 100644 apps/cf_http/screenshots/1615987555880147000.png create mode 100644 apps/cf_http/screenshots/1615987566524557000.png create mode 100644 apps/cf_http/screenshots/1615987568167227000.png create mode 100644 apps/cf_http/screenshots/1615988128474107000.png create mode 100644 apps/cf_http/screenshots/1615988133208137000.png create mode 100644 apps/cf_http/screenshots/1615988135696715000.png create mode 100644 apps/cf_http/screenshots/1615988320882346000.png create mode 100644 apps/cf_http/screenshots/1615988326647903000.png create mode 100644 apps/cf_http/screenshots/1615988328881137000.png create mode 100644 apps/cf_http/screenshots/1615988425798335000.png create mode 100644 apps/cf_http/screenshots/1615988428276135000.png create mode 100644 apps/cf_http/screenshots/1615988433343163000.png create mode 100644 apps/cf_http/screenshots/1615988603009620000.png create mode 100644 apps/cf_http/screenshots/1615988605693515000.png create mode 100644 apps/cf_http/screenshots/1615988608341905000.png create mode 100644 apps/cf_http/screenshots/1615988658988566000.png create mode 100644 apps/cf_http/screenshots/1615988664005112000.png create mode 100644 apps/cf_http/screenshots/1615988669648253000.png create mode 100644 apps/cf_http/screenshots/1615991038797022000.png create mode 100644 apps/cf_http/screenshots/1615991041358283000.png create mode 100644 apps/cf_http/screenshots/1615991046979560000.png create mode 100644 apps/cf_http/screenshots/1615992325433593000.png create mode 100644 apps/cf_http/screenshots/1615992327943788000.png create mode 100644 apps/cf_http/screenshots/1615992333313188000.png rename apps/{fg_http/test/fg_http => cf_http/test/cf_http}/devices_test.exs (96%) rename apps/{fg_http/test/fg_http => cf_http/test/cf_http}/password_resets_test.exs (96%) rename apps/{fg_http/test/fg_http => cf_http/test/cf_http}/release_test.exs (83%) rename apps/{fg_http/test/fg_http => cf_http/test/cf_http}/rules_test.exs (96%) rename apps/{fg_http/test/fg_http => cf_http/test/cf_http}/sessions_test.exs (94%) rename apps/{fg_http/test/fg_http => cf_http/test/cf_http}/users_test.exs (98%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/controllers/session_controller_test.exs (93%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/controllers/user_controller_test.exs (88%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/live/account_live/show_test.exs (92%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/live/device_live/index_test.exs (89%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/live/device_live/show_test.exs (98%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/live/password_reset_live/edit_test.exs (96%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/live/password_reset_live/new_test.exs (91%) create mode 100644 apps/cf_http/test/cf_http_web/live/root_live/index_test.exs rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/live/session_live/new_test.exs (93%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/live/user_live/new_test.exs (91%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/views/error_view_test.exs (50%) rename apps/{fg_http/test/fg_http_web => cf_http/test/cf_http_web}/views/layout_view_test.exs (71%) rename apps/{fg_http => cf_http}/test/support/channel_case.ex (76%) rename apps/{fg_http => cf_http}/test/support/conn_case.ex (79%) rename apps/{fg_http => cf_http}/test/support/data_case.ex (83%) rename apps/{fg_http => cf_http}/test/support/fixtures.ex (95%) rename apps/{fg_http => cf_http}/test/support/mock_helpers.ex (58%) rename apps/{fg_http => cf_http}/test/support/test_helpers.ex (97%) create mode 100644 apps/cf_http/test/test_helper.exs rename apps/{fg_vpn => cf_vpn}/.formatter.exs (100%) rename apps/{fg_vpn => cf_vpn}/.gitignore (99%) rename apps/{fg_vpn => cf_vpn}/README.md (80%) rename apps/{fg_vpn => cf_vpn}/coveralls.json (55%) create mode 100644 apps/cf_vpn/lib/cf_vpn.ex rename apps/{fg_vpn/lib/fg_vpn => cf_vpn/lib/cf_vpn}/application.ex (75%) rename apps/{fg_vpn/lib/fg_vpn => cf_vpn/lib/cf_vpn}/cli.ex (58%) rename apps/{fg_vpn/lib/fg_vpn => cf_vpn/lib/cf_vpn}/cli/live.ex (92%) rename apps/{fg_vpn/lib/fg_vpn => cf_vpn/lib/cf_vpn}/cli/sandbox.ex (96%) rename apps/{fg_vpn/lib/fg_vpn => cf_vpn/lib/cf_vpn}/config.ex (87%) rename apps/{fg_vpn/lib/fg_vpn => cf_vpn/lib/cf_vpn}/peer.ex (87%) rename apps/{fg_vpn/lib/fg_vpn => cf_vpn/lib/cf_vpn}/server.ex (91%) rename apps/{fg_vpn => cf_vpn}/mix.exs (84%) rename apps/{fg_vpn/test/fg_vpn => cf_vpn/test/cf_vpn}/cli/sandbox_test.exs (95%) rename apps/{fg_vpn/test/fg_vpn => cf_vpn/test/cf_vpn}/config_test.exs (93%) rename apps/{fg_vpn/test/fg_vpn => cf_vpn/test/cf_vpn}/server_test.exs (91%) create mode 100644 apps/cf_vpn/test/cf_vpn_test.exs rename apps/{fg_vpn => cf_vpn}/test/fixtures/.gitkeep (100%) rename apps/{fg_vpn => cf_vpn}/test/test_helper.exs (100%) rename apps/{fg_wall => cf_wall}/.formatter.exs (100%) rename apps/{fg_wall => cf_wall}/.gitignore (99%) rename apps/{fg_wall => cf_wall}/README.md (80%) rename apps/{fg_wall/lib/fg_wall.ex => cf_wall/lib/cf_wall.ex} (62%) rename apps/{fg_wall/lib/fg_wall => cf_wall/lib/cf_wall}/application.ex (75%) rename apps/{fg_wall/lib/fg_wall => cf_wall/lib/cf_wall}/cli.ex (58%) create mode 100644 apps/cf_wall/lib/cf_wall/cli/live.ex rename apps/{fg_wall/lib/fg_wall => cf_wall/lib/cf_wall}/cli/sandbox.ex (69%) rename apps/{fg_wall/lib/fg_wall => cf_wall/lib/cf_wall}/server.ex (75%) rename apps/{fg_wall => cf_wall}/mix.exs (83%) create mode 100644 apps/cf_wall/test/cf_wall_test.exs rename apps/{fg_wall => cf_wall}/test/test_helper.exs (100%) delete mode 100644 apps/fg_common/lib/fg_common.ex delete mode 100644 apps/fg_common/test/fg_common_test.exs delete mode 100644 apps/fg_http/README.md delete mode 100644 apps/fg_http/lib/fg_http/encrypted/binary.ex delete mode 100644 apps/fg_http/lib/fg_http/mailer.ex delete mode 100644 apps/fg_http/lib/fg_http/vault.ex delete mode 100644 apps/fg_http/lib/fg_http_web/views/email_view.ex delete mode 100644 apps/fg_http/lib/fg_http_web/views/layout_view.ex delete mode 100644 apps/fg_http/test/fg_http_web/live/root_live/index_test.exs delete mode 100644 apps/fg_http/test/test_helper.exs delete mode 100644 apps/fg_vpn/lib/fg_vpn.ex delete mode 100644 apps/fg_vpn/test/fg_vpn_test.exs delete mode 100644 apps/fg_wall/lib/fg_wall/cli/live.ex delete mode 100644 apps/fg_wall/test/fg_wall_test.exs rename scripts/{start_fg_http.sh => start_cf_http.sh} (60%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f91224d75..ee8a387ff 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ Read this guide before opening a pull request. ## Prerequisites -You'll need the following software installed to develop for FireGuard: +You'll need the following software installed to develop for CloudFire: - [Vagrant](vagrantup.com) - [Ansible](ansible.com) @@ -28,11 +28,11 @@ You'll need the following software installed to develop for FireGuard: ## Project Setup -1. Ensure Postgres is running with a superuser role of `fireguard`. E.g. +1. Ensure Postgres is running with a superuser role of `cloudfire`. E.g. ``` $ psql -h localhost -d postgres - > CREATE ROLE fireguard; + > CREATE ROLE cloudfire; ``` 2. Install the language versions defined in `.tool-versions`: ``` @@ -42,7 +42,7 @@ You'll need the following software installed to develop for FireGuard: 3. Resolve dependencies ``` $ mix deps.get - $ npm install --prefix apps/fg_http/assets + $ npm install --prefix apps/cf_http/assets ``` 4. Bootstrap DB ``` diff --git a/README.md b/README.md index 6a1f1d19a..fcb7ef190 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -![Test](https://github.com/CloudFire-LLC/fireguard/workflows/Test/badge.svg) -[![Coverage Status](https://coveralls.io/repos/github/CloudFire-LLC/fireguard/badge.svg?branch=master)](https://coveralls.io/github/CloudFire-LLC/fireguard?branch=master) +![Test](https://github.com/CloudFire-LLC/cloudfire/workflows/Test/badge.svg) +[![Coverage Status](https://coveralls.io/repos/github/CloudFire-LLC/cloudfire/badge.svg?branch=master)](https://coveralls.io/github/CloudFire-LLC/cloudfire?branch=master) **Warning**: This project is under active development and is not secure at the moment. Do not attempt to use this software in any production capacity until this notice is removed. You have been warned. -# FireGuard +# CloudFire 1. [Intro](#intro) 2. [Architecture](#architecture) @@ -16,11 +16,11 @@ You have been warned. ## Intro -FireGuard is a host-it-yourself VPN and firewall configurable through a Web UI. +CloudFire is a host-it-yourself VPN and firewall configurable through a Web UI. It aims to be a simple way to setup a VPN and optional firewall for all your devices. -Use FireGuard to: +Use CloudFire to: - Set up your own VPN - Block, inspect, or capture outgoing traffic from your phone / tablet / @@ -28,19 +28,19 @@ Use FireGuard to: ## Architecture -FireGuard is written in the Elixir programming language and composed as an [Umbrella +CloudFire is written in the Elixir programming language and composed as an [Umbrella project](https://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-projects.html) consisting of three Elixir packages: -- [apps/fg_http](apps/fg_http): The Web Application -- [apps/fg_wall](apps/fg_wall): Firewall Management Process -- [apps/fg_vpn](apps/fg_vpn): WireGuard™ Management Process +- [apps/cf_http](apps/cf_http): The Web Application +- [apps/cf_wall](apps/cf_wall): Firewall Management Process +- [apps/cf_vpn](apps/cf_vpn): WireGuard™ Management Process -For now, FireGuard assumes these apps are all running on the same host. +For now, CloudFire assumes these apps are all running on the same host. ## Setup -Currently, the only supported method of running FireGuard is locally. MacOS and +Currently, the only supported method of running CloudFire is locally. MacOS and Linux users shouldn't have any problems. Windows will Probably Work™. You'll need recent versions of the following tools installed: @@ -57,18 +57,18 @@ vagrant up ``` This will download the VM base box, provision it with dependencies, bootstrap -the FireGuard DB, launch the FireGuard Services, and print instructions for +the CloudFire DB, launch the CloudFire Services, and print instructions for connecting to the Web UI. ## Creating Additional Users -FireGuard creates the first user for you upon installation and prints the +CloudFire creates the first user for you upon installation and prints the credentials after `vagrant up` completes in the step above. You may create additional users with the following command: ```bash -sudo -u fireguard /opt/fireguard/bin/fireguard rpc 'FgHttp.Users.create_user( +sudo -u cloudfire /opt/cloudfire/bin/cloudfire rpc 'CfHttp.Users.create_user( email: "USER_EMAIL", password: "USER_PASSWORD", password_confirmation: "USER_PASSWORD" diff --git a/Vagrantfile b/Vagrantfile index 5e74b89d3..321416489 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -7,7 +7,7 @@ Vagrant.configure('2') do |config| end config.vm.box = 'ubuntu/focal64' - config.vm.hostname = 'fireguard.local' + config.vm.hostname = 'cloudfire.local' # Web config.vm.network 'forwarded_port', guest: 8800, host: 8800, protocol: 'tcp' diff --git a/ansible/playbook.yml b/ansible/playbook.yml index 3586357e8..f66a30179 100644 --- a/ansible/playbook.yml +++ b/ansible/playbook.yml @@ -59,41 +59,41 @@ line: 'net.ipv6.conf.all.forwarding = 1' - name: apply sysctl shell: sysctl -p -- name: Build FireGuard +- name: Build CloudFire hosts: all tasks: - name: Copy Project shell: | - rsync --delete -avz --exclude '_build' --exclude 'deps' /vagrant/* /home/vagrant/fireguard/ + rsync --delete -avz --exclude '_build' --exclude 'deps' /vagrant/* /home/vagrant/cloudfire/ - name: Compile Release become: no environment: MIX_ENV: prod shell: | - cd /home/vagrant/fireguard + cd /home/vagrant/cloudfire scripts/build_release.sh - name: Build Debian Package become: no shell: | - cd /home/vagrant/fireguard + cd /home/vagrant/cloudfire scripts/build_deb.sh - - name: Install FireGuard deb + - name: Install CloudFire deb become: yes shell: | - cd /home/vagrant/fireguard - dpkg -i fireguard_amd64.deb + cd /home/vagrant/cloudfire + dpkg -i cloudfire_amd64.deb - name: Enable systemd units become: yes shell: | - systemctl enable fireguard + systemctl enable cloudfire - name: Start systemd units become: yes shell: | - systemctl start fireguard + systemctl start cloudfire - name: Capture user credentials become: yes shell: | - journalctl -u fireguard + journalctl -u cloudfire register: create_user - name: Display user credentials debug: msg="{{ create_user.stdout_lines }}" diff --git a/apps/fg_common/.formatter.exs b/apps/cf_common/.formatter.exs similarity index 100% rename from apps/fg_common/.formatter.exs rename to apps/cf_common/.formatter.exs diff --git a/apps/fg_common/.gitignore b/apps/cf_common/.gitignore similarity index 100% rename from apps/fg_common/.gitignore rename to apps/cf_common/.gitignore diff --git a/apps/fg_common/README.md b/apps/cf_common/README.md similarity index 66% rename from apps/fg_common/README.md rename to apps/cf_common/README.md index bb89d5d3c..958a3d6a6 100644 --- a/apps/fg_common/README.md +++ b/apps/cf_common/README.md @@ -1,20 +1,20 @@ -# FgCommon +# CfCommon **TODO: Add description** ## Installation If [available in Hex](https://hex.pm/docs/publish), the package can be installed -by adding `fg_common` to your list of dependencies in `mix.exs`: +by adding `cf_common` to your list of dependencies in `mix.exs`: ```elixir def deps do [ - {:fg_common, "~> 0.1.0"} + {:cf_common, "~> 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/fg_common](https://hexdocs.pm/fg_common). +be found at [https://hexdocs.pm/cf_common](https://hexdocs.pm/cf_common). diff --git a/apps/cf_common/lib/cf_common.ex b/apps/cf_common/lib/cf_common.ex new file mode 100644 index 000000000..89a3705a4 --- /dev/null +++ b/apps/cf_common/lib/cf_common.ex @@ -0,0 +1,5 @@ +defmodule CfCommon do + @moduledoc """ + Documentation for `CfCommon`. + """ +end diff --git a/apps/fg_common/lib/fg_crypto.ex b/apps/cf_common/lib/cf_crypto.ex similarity index 91% rename from apps/fg_common/lib/fg_crypto.ex rename to apps/cf_common/lib/cf_crypto.ex index 7c600240e..5f16a552b 100644 --- a/apps/fg_common/lib/fg_crypto.ex +++ b/apps/cf_common/lib/cf_crypto.ex @@ -1,4 +1,4 @@ -defmodule FgCommon.FgCrypto do +defmodule CfCommon.CfCrypto do @moduledoc """ Utilities for working with crypto functions """ diff --git a/apps/fg_common/lib/fg_map.ex b/apps/cf_common/lib/cf_map.ex similarity index 94% rename from apps/fg_common/lib/fg_map.ex rename to apps/cf_common/lib/cf_map.ex index 55fc36234..ec8733e18 100644 --- a/apps/fg_common/lib/fg_map.ex +++ b/apps/cf_common/lib/cf_map.ex @@ -1,4 +1,4 @@ -defmodule FgCommon.FgMap do +defmodule CfCommon.CfMap do @moduledoc """ Utilities for working with Maps """ diff --git a/apps/fg_common/lib/fg_net.ex b/apps/cf_common/lib/cf_net.ex similarity index 94% rename from apps/fg_common/lib/fg_net.ex rename to apps/cf_common/lib/cf_net.ex index 230d5f1af..dba7a834c 100644 --- a/apps/fg_common/lib/fg_net.ex +++ b/apps/cf_common/lib/cf_net.ex @@ -1,4 +1,4 @@ -defmodule FgCommon.FgNet do +defmodule CfCommon.CfNet do @moduledoc """ Network utility functions. """ diff --git a/apps/fg_common/lib/cli.ex b/apps/cf_common/lib/cli.ex similarity index 81% rename from apps/fg_common/lib/cli.ex rename to apps/cf_common/lib/cli.ex index 17083a907..6b23ed9fa 100644 --- a/apps/fg_common/lib/cli.ex +++ b/apps/cf_common/lib/cli.ex @@ -1,4 +1,4 @@ -defmodule FgCommon.CLI do +defmodule CfCommon.CLI do @moduledoc """ Handles low-level CLI facilities. """ @@ -15,7 +15,7 @@ defmodule FgCommon.CLI do {error, _} -> raise """ Error executing command #{cmd} with error #{error}. - FireGuard cannot recover from this error. + CloudFire cannot recover from this error. """ end end diff --git a/apps/fg_common/lib/name_generator.ex b/apps/cf_common/lib/name_generator.ex similarity index 99% rename from apps/fg_common/lib/name_generator.ex rename to apps/cf_common/lib/name_generator.ex index 7fa207891..9b43612b5 100644 --- a/apps/fg_common/lib/name_generator.ex +++ b/apps/cf_common/lib/name_generator.ex @@ -1,4 +1,4 @@ -defmodule FgCommon.NameGenerator do +defmodule CfCommon.NameGenerator do @moduledoc """ Generates random human-readable name """ diff --git a/apps/fg_common/mix.exs b/apps/cf_common/mix.exs similarity index 92% rename from apps/fg_common/mix.exs rename to apps/cf_common/mix.exs index 926b57886..202fa08ba 100644 --- a/apps/fg_common/mix.exs +++ b/apps/cf_common/mix.exs @@ -1,9 +1,9 @@ -defmodule FgCommon.MixProject do +defmodule CfCommon.MixProject do use Mix.Project def project do [ - app: :fg_common, + app: :cf_common, version: "0.1.0", build_path: "../../_build", config_path: "../../config/config.exs", diff --git a/apps/cf_common/test/cf_common_test.exs b/apps/cf_common/test/cf_common_test.exs new file mode 100644 index 000000000..3a15a4e79 --- /dev/null +++ b/apps/cf_common/test/cf_common_test.exs @@ -0,0 +1,4 @@ +defmodule CfCommonTest do + use ExUnit.Case + doctest CfCommon +end diff --git a/apps/fg_common/test/fg_crypto_test.exs b/apps/cf_common/test/cf_crypto_test.exs similarity index 57% rename from apps/fg_common/test/fg_crypto_test.exs rename to apps/cf_common/test/cf_crypto_test.exs index 6ee3971bb..0ff65ea5e 100644 --- a/apps/fg_common/test/fg_crypto_test.exs +++ b/apps/cf_common/test/cf_crypto_test.exs @@ -1,16 +1,16 @@ -defmodule FgCommon.FgCryptoTest do +defmodule CfCommon.CfCryptoTest do use ExUnit.Case, async: true - alias FgCommon.FgCrypto + alias CfCommon.CfCrypto describe "rand_string" do test "it returns a string of default length" do - assert 16 == String.length(FgCrypto.rand_string()) + assert 16 == String.length(CfCrypto.rand_string()) end test "it returns a string of proper length" do for length <- [1, 32, 32_768] do - assert length == String.length(FgCrypto.rand_string(length)) + assert length == String.length(CfCrypto.rand_string(length)) end end end diff --git a/apps/fg_common/test/fg_map_test.exs b/apps/cf_common/test/cf_map_test.exs similarity index 61% rename from apps/fg_common/test/fg_map_test.exs rename to apps/cf_common/test/cf_map_test.exs index ecc32e32a..89ffffc1a 100644 --- a/apps/fg_common/test/fg_map_test.exs +++ b/apps/cf_common/test/cf_map_test.exs @@ -1,13 +1,13 @@ -defmodule FgCommon.FgMapTest do +defmodule CfCommon.CfMapTest do use ExUnit.Case, async: true - alias FgCommon.FgMap + alias CfCommon.CfMap describe "compact/1" do @data %{foo: nil, bar: "hello"} test "removes nil values" do - assert FgMap.compact(@data) == %{bar: "hello"} + assert CfMap.compact(@data) == %{bar: "hello"} end end @@ -15,7 +15,7 @@ defmodule FgCommon.FgMapTest do @data %{foo: "bar", bar: ""} test "removes matched values" do - assert FgMap.compact(@data, "") == %{foo: "bar"} + assert CfMap.compact(@data, "") == %{foo: "bar"} end end end diff --git a/apps/fg_common/test/fg_net_test.exs b/apps/cf_common/test/cf_net_test.exs similarity index 53% rename from apps/fg_common/test/fg_net_test.exs rename to apps/cf_common/test/cf_net_test.exs index d5e06c7b0..dbd27764e 100644 --- a/apps/fg_common/test/fg_net_test.exs +++ b/apps/cf_common/test/cf_net_test.exs @@ -1,19 +1,19 @@ -defmodule FgCommon.FgNetTest do +defmodule CfCommon.CfNetTest do use ExUnit.Case, async: true - alias FgCommon.FgNet + alias CfCommon.CfNet describe "ip_type" do test "it detects IPv4 addresses" do - assert FgNet.ip_type("127.0.0.1") == "IPv4" + assert CfNet.ip_type("127.0.0.1") == "IPv4" end test "it detects IPv6 addresses" do - assert FgNet.ip_type("::1") == "IPv6" + assert CfNet.ip_type("::1") == "IPv6" end test "it reports \"unknown\" for unknown type" do - assert FgNet.ip_type("invalid") == "unknown" + assert CfNet.ip_type("invalid") == "unknown" end end end diff --git a/apps/fg_common/test/name_generator_test.exs b/apps/cf_common/test/name_generator_test.exs similarity index 82% rename from apps/fg_common/test/name_generator_test.exs rename to apps/cf_common/test/name_generator_test.exs index d33116b52..376fdc2b8 100644 --- a/apps/fg_common/test/name_generator_test.exs +++ b/apps/cf_common/test/name_generator_test.exs @@ -1,7 +1,7 @@ -defmodule FgCommon.NameGeneratorTest do +defmodule CfCommon.NameGeneratorTest do use ExUnit.Case, async: true - alias FgCommon.NameGenerator + alias CfCommon.NameGenerator describe "generate/0" do test "generates a name" do diff --git a/apps/fg_common/test/test_helper.exs b/apps/cf_common/test/test_helper.exs similarity index 100% rename from apps/fg_common/test/test_helper.exs rename to apps/cf_common/test/test_helper.exs diff --git a/apps/fg_http/.formatter.exs b/apps/cf_http/.formatter.exs similarity index 100% rename from apps/fg_http/.formatter.exs rename to apps/cf_http/.formatter.exs diff --git a/apps/fg_http/.gitignore b/apps/cf_http/.gitignore similarity index 100% rename from apps/fg_http/.gitignore rename to apps/cf_http/.gitignore diff --git a/apps/cf_http/README.md b/apps/cf_http/README.md new file mode 100644 index 000000000..b6983d5df --- /dev/null +++ b/apps/cf_http/README.md @@ -0,0 +1,3 @@ +# CfHttp + +Phoenix app for managing CloudFire. diff --git a/apps/fg_http/assets/.babelrc b/apps/cf_http/assets/.babelrc similarity index 100% rename from apps/fg_http/assets/.babelrc rename to apps/cf_http/assets/.babelrc diff --git a/apps/fg_http/assets/css/app.scss b/apps/cf_http/assets/css/app.scss similarity index 100% rename from apps/fg_http/assets/css/app.scss rename to apps/cf_http/assets/css/app.scss diff --git a/apps/fg_http/assets/css/email.scss b/apps/cf_http/assets/css/email.scss similarity index 100% rename from apps/fg_http/assets/css/email.scss rename to apps/cf_http/assets/css/email.scss diff --git a/apps/fg_http/assets/css/main.scss b/apps/cf_http/assets/css/main.scss similarity index 100% rename from apps/fg_http/assets/css/main.scss rename to apps/cf_http/assets/css/main.scss diff --git a/apps/fg_http/assets/js/app.js b/apps/cf_http/assets/js/app.js similarity index 100% rename from apps/fg_http/assets/js/app.js rename to apps/cf_http/assets/js/app.js diff --git a/apps/fg_http/assets/js/hooks.js b/apps/cf_http/assets/js/hooks.js similarity index 100% rename from apps/fg_http/assets/js/hooks.js rename to apps/cf_http/assets/js/hooks.js diff --git a/apps/fg_http/assets/package-lock.json b/apps/cf_http/assets/package-lock.json similarity index 100% rename from apps/fg_http/assets/package-lock.json rename to apps/cf_http/assets/package-lock.json diff --git a/apps/fg_http/assets/package.json b/apps/cf_http/assets/package.json similarity index 100% rename from apps/fg_http/assets/package.json rename to apps/cf_http/assets/package.json diff --git a/apps/fg_http/assets/postcss.config.js b/apps/cf_http/assets/postcss.config.js similarity index 100% rename from apps/fg_http/assets/postcss.config.js rename to apps/cf_http/assets/postcss.config.js diff --git a/apps/fg_http/assets/static/favicon.ico b/apps/cf_http/assets/static/favicon.ico similarity index 100% rename from apps/fg_http/assets/static/favicon.ico rename to apps/cf_http/assets/static/favicon.ico diff --git a/apps/fg_http/assets/static/robots.txt b/apps/cf_http/assets/static/robots.txt similarity index 100% rename from apps/fg_http/assets/static/robots.txt rename to apps/cf_http/assets/static/robots.txt diff --git a/apps/fg_http/assets/webpack.config.js b/apps/cf_http/assets/webpack.config.js similarity index 100% rename from apps/fg_http/assets/webpack.config.js rename to apps/cf_http/assets/webpack.config.js diff --git a/apps/fg_http/coveralls.json b/apps/cf_http/coveralls.json similarity index 100% rename from apps/fg_http/coveralls.json rename to apps/cf_http/coveralls.json diff --git a/apps/fg_http/lib/fg_http.ex b/apps/cf_http/lib/cf_http.ex similarity index 71% rename from apps/fg_http/lib/fg_http.ex rename to apps/cf_http/lib/cf_http.ex index 81a0cc2d1..5b09fce54 100644 --- a/apps/fg_http/lib/fg_http.ex +++ b/apps/cf_http/lib/cf_http.ex @@ -1,6 +1,6 @@ -defmodule FgHttp do +defmodule CfHttp do @moduledoc """ - FgHttp keeps the contexts that define your domain + CfHttp keeps the contexts that define your domain and business logic. Contexts are also responsible for managing your data, regardless diff --git a/apps/fg_http/lib/fg_http/application.ex b/apps/cf_http/lib/cf_http/application.ex similarity index 60% rename from apps/fg_http/lib/fg_http/application.ex rename to apps/cf_http/lib/cf_http/application.ex index f805eaadf..de84ad09e 100644 --- a/apps/fg_http/lib/fg_http/application.ex +++ b/apps/cf_http/lib/cf_http/application.ex @@ -1,4 +1,4 @@ -defmodule FgHttp.Application do +defmodule CfHttp.Application do # See https://hexdocs.pm/elixir/Application.html # for more information on OTP Applications @moduledoc false @@ -7,32 +7,32 @@ defmodule FgHttp.Application do def start(_type, _args) do children = - case Application.get_env(:fg_http, :minimal) do + case Application.get_env(:cf_http, :minimal) do true -> [ - FgHttp.Repo, - FgHttp.Vault + CfHttp.Repo, + CfHttp.Vault ] _ -> [ - FgHttp.Repo, - FgHttp.Vault, - {Phoenix.PubSub, name: FgHttp.PubSub}, - FgHttpWeb.Endpoint + CfHttp.Repo, + CfHttp.Vault, + {Phoenix.PubSub, name: CfHttp.PubSub}, + CfHttpWeb.Endpoint ] end # See https://hexdocs.pm/elixir/Supervisor.html # for other strategies and supported options - opts = [strategy: :one_for_one, name: FgHttp.Supervisor] + opts = [strategy: :one_for_one, name: CfHttp.Supervisor] Supervisor.start_link(children, opts) end # Tell Phoenix to update the endpoint configuration # whenever the application is updated. def config_change(changed, _new, removed) do - FgHttpWeb.Endpoint.config_change(changed, removed) + CfHttpWeb.Endpoint.config_change(changed, removed) :ok end end diff --git a/apps/fg_http/lib/fg_http/devices.ex b/apps/cf_http/lib/cf_http/devices.ex similarity index 92% rename from apps/fg_http/lib/fg_http/devices.ex rename to apps/cf_http/lib/cf_http/devices.ex index 63578457d..97d231246 100644 --- a/apps/fg_http/lib/fg_http/devices.ex +++ b/apps/cf_http/lib/cf_http/devices.ex @@ -1,11 +1,11 @@ -defmodule FgHttp.Devices do +defmodule CfHttp.Devices do @moduledoc """ The Devices context. """ import Ecto.Query, warn: false - alias FgCommon.NameGenerator - alias FgHttp.{Devices.Device, Repo, Users.User} + alias CfCommon.NameGenerator + alias CfHttp.{Devices.Device, Repo, Users.User} def list_devices do Repo.all(Device) diff --git a/apps/fg_http/lib/fg_http/devices/device.ex b/apps/cf_http/lib/cf_http/devices/device.ex similarity index 86% rename from apps/fg_http/lib/fg_http/devices/device.ex rename to apps/cf_http/lib/cf_http/devices/device.ex index b196c492a..890a7b4c0 100644 --- a/apps/fg_http/lib/fg_http/devices/device.ex +++ b/apps/cf_http/lib/cf_http/devices/device.ex @@ -1,4 +1,4 @@ -defmodule FgHttp.Devices.Device do +defmodule CfHttp.Devices.Device do @moduledoc """ Manages Device things """ @@ -6,14 +6,14 @@ defmodule FgHttp.Devices.Device do use Ecto.Schema import Ecto.Changeset - alias FgHttp.{Rules.Rule, Users.User} + alias CfHttp.{Rules.Rule, Users.User} schema "devices" do field :name, :string field :public_key, :string field :allowed_ips, :string - field :preshared_key, FgHttp.Encrypted.Binary - field :private_key, FgHttp.Encrypted.Binary + field :preshared_key, CfHttp.Encrypted.Binary + field :private_key, CfHttp.Encrypted.Binary field :server_public_key, :string field :remote_ip, EctoNetwork.INET field :interface_address4, EctoNetwork.INET diff --git a/apps/fg_http/lib/fg_http/email.ex b/apps/cf_http/lib/cf_http/email.ex similarity index 55% rename from apps/fg_http/lib/fg_http/email.ex rename to apps/cf_http/lib/cf_http/email.ex index d67acd7ba..d508adb0d 100644 --- a/apps/fg_http/lib/fg_http/email.ex +++ b/apps/cf_http/lib/cf_http/email.ex @@ -1,23 +1,23 @@ -defmodule FgHttp.Email do +defmodule CfHttp.Email do @moduledoc """ Handles Email for the app """ - use Bamboo.Phoenix, view: FgHttpWeb.EmailView - alias FgHttp.Users.PasswordReset + use Bamboo.Phoenix, view: CfHttpWeb.EmailView + alias CfHttp.Users.PasswordReset - @from "noreply@#{Application.compile_env(:fg_http, FgHttpWeb.Endpoint)[:url][:host]}" + @from "noreply@#{Application.compile_env(:cf_http, CfHttpWeb.Endpoint)[:url][:host]}" defp base_email(to) do new_email() - |> put_html_layout({FgHttpWeb.LayoutView, "email.html"}) + |> put_html_layout({CfHttpWeb.LayoutView, "email.html"}) |> from(@from) |> to(to) end def password_reset(%PasswordReset{} = password_reset) do base_email(password_reset.email) - |> subject("FireGuard password reset") + |> subject("CloudFire password reset") |> assign(:reset_token, password_reset.reset_token) |> render(:password_reset) end diff --git a/apps/cf_http/lib/cf_http/encrypted/binary.ex b/apps/cf_http/lib/cf_http/encrypted/binary.ex new file mode 100644 index 000000000..7e208de66 --- /dev/null +++ b/apps/cf_http/lib/cf_http/encrypted/binary.ex @@ -0,0 +1,7 @@ +defmodule CfHttp.Encrypted.Binary do + @moduledoc """ + Configures how to encrpyt Binaries to the DB. + """ + + use Cloak.Ecto.Binary, vault: CfHttp.Vault +end diff --git a/apps/cf_http/lib/cf_http/mailer.ex b/apps/cf_http/lib/cf_http/mailer.ex new file mode 100644 index 000000000..cf76fb15f --- /dev/null +++ b/apps/cf_http/lib/cf_http/mailer.ex @@ -0,0 +1,7 @@ +defmodule CfHttp.Mailer do + @moduledoc """ + Mailer for the application + """ + + use Bamboo.Mailer, otp_app: :cf_http +end diff --git a/apps/fg_http/lib/fg_http/password_resets.ex b/apps/cf_http/lib/cf_http/password_resets.ex similarity index 93% rename from apps/fg_http/lib/fg_http/password_resets.ex rename to apps/cf_http/lib/cf_http/password_resets.ex index ac92127b0..1372eac93 100644 --- a/apps/fg_http/lib/fg_http/password_resets.ex +++ b/apps/cf_http/lib/cf_http/password_resets.ex @@ -1,12 +1,12 @@ -defmodule FgHttp.PasswordResets do +defmodule CfHttp.PasswordResets do @moduledoc """ The PasswordResets context. """ import Ecto.Query, warn: false - alias FgHttp.Repo + alias CfHttp.Repo - alias FgHttp.Users.PasswordReset + alias CfHttp.Users.PasswordReset def get_password_reset(email: email) do Repo.get_by(PasswordReset, email: email) diff --git a/apps/fg_http/lib/fg_http/release.ex b/apps/cf_http/lib/cf_http/release.ex similarity index 89% rename from apps/fg_http/lib/fg_http/release.ex rename to apps/cf_http/lib/cf_http/release.ex index af4e8c424..8bfdd932a 100644 --- a/apps/fg_http/lib/fg_http/release.ex +++ b/apps/cf_http/lib/cf_http/release.ex @@ -1,12 +1,12 @@ -defmodule FgHttp.Release do +defmodule CfHttp.Release do @moduledoc """ Adds common tasks to the production app because Mix is not available. """ - alias FgHttp.{Repo, Users, Users.User} + alias CfHttp.{Repo, Users, Users.User} require Logger - @app :fg_http + @app :cf_http def gen_secret(length) when length > 31 do IO.puts(secret(length)) @@ -73,10 +73,10 @@ defmodule FgHttp.Release do ) Logger.info( - "FireGuard user created! Save this information because it will NOT be shown again." + "CloudFire user created! Save this information because it will NOT be shown again." ) - Logger.info("Use this to log into the Web UI at #{FgHttpWeb.Endpoint.url()}.") + Logger.info("Use this to log into the Web UI at #{CfHttpWeb.Endpoint.url()}.") Logger.info("Email: #{email}") Logger.info("Password: #{password}") diff --git a/apps/fg_http/lib/fg_http/repo.ex b/apps/cf_http/lib/cf_http/repo.ex similarity index 71% rename from apps/fg_http/lib/fg_http/repo.ex rename to apps/cf_http/lib/cf_http/repo.ex index f511ed463..0e2a0cf9c 100644 --- a/apps/fg_http/lib/fg_http/repo.ex +++ b/apps/cf_http/lib/cf_http/repo.ex @@ -1,10 +1,10 @@ -defmodule FgHttp.Repo do +defmodule CfHttp.Repo do use Ecto.Repo, - otp_app: :fg_http, + otp_app: :cf_http, adapter: Ecto.Adapters.Postgres require Logger - import FgHttpWeb.Events + import CfHttpWeb.Events def init(_) do # Set firewall rules diff --git a/apps/fg_http/lib/fg_http/rules.ex b/apps/cf_http/lib/cf_http/rules.ex similarity index 88% rename from apps/fg_http/lib/fg_http/rules.ex rename to apps/cf_http/lib/cf_http/rules.ex index 4151f2018..3c1877017 100644 --- a/apps/fg_http/lib/fg_http/rules.ex +++ b/apps/cf_http/lib/cf_http/rules.ex @@ -1,13 +1,13 @@ -defmodule FgHttp.Rules do +defmodule CfHttp.Rules do @moduledoc """ The Rules context. """ import Ecto.Query, warn: false + alias CfCommon.CfNet alias EctoNetwork.INET - alias FgCommon.FgNet - alias FgHttp.{Devices.Device, Repo, Rules.Rule} + alias CfHttp.{Devices.Device, Repo, Rules.Rule} def get_rule!(id), do: Repo.get!(Rule, id) @@ -41,10 +41,10 @@ defmodule FgHttp.Rules do device = Repo.preload(rule, :device).device dest = decode(rule.destination) - # I pass INET.decode as a function to FgNet so that I don't need - # to include ecto_network as a dependency in FgCommon. + # I pass INET.decode as a function to CfNet so that I don't need + # to include ecto_network as a dependency in CfCommon. source = - case FgNet.ip_type(dest) do + case CfNet.ip_type(dest) do "IPv6" -> device.interface_address6 "IPv4" -> device.interface_address4 _ -> nil diff --git a/apps/fg_http/lib/fg_http/rules/rule.ex b/apps/cf_http/lib/cf_http/rules/rule.ex similarity index 91% rename from apps/fg_http/lib/fg_http/rules/rule.ex rename to apps/cf_http/lib/cf_http/rules/rule.ex index 300cb798d..10ae02ef4 100644 --- a/apps/fg_http/lib/fg_http/rules/rule.ex +++ b/apps/cf_http/lib/cf_http/rules/rule.ex @@ -1,4 +1,4 @@ -defmodule FgHttp.Rules.Rule do +defmodule CfHttp.Rules.Rule do @moduledoc """ Not really sure what to write here. I'll update this later. """ @@ -6,7 +6,7 @@ defmodule FgHttp.Rules.Rule do use Ecto.Schema import Ecto.Changeset - alias FgHttp.{Devices.Device} + alias CfHttp.{Devices.Device} @rule_dupe_msg "A rule with that IP/CIDR address already exists." diff --git a/apps/fg_http/lib/fg_http/sessions.ex b/apps/cf_http/lib/cf_http/sessions.ex similarity index 92% rename from apps/fg_http/lib/fg_http/sessions.ex rename to apps/cf_http/lib/cf_http/sessions.ex index d8b0ef2ee..1283cbd23 100644 --- a/apps/fg_http/lib/fg_http/sessions.ex +++ b/apps/cf_http/lib/cf_http/sessions.ex @@ -1,12 +1,12 @@ -defmodule FgHttp.Sessions do +defmodule CfHttp.Sessions do @moduledoc """ The Sessions context. """ import Ecto.Query, warn: false - alias FgHttp.Repo + alias CfHttp.Repo - alias FgHttp.Users.Session + alias CfHttp.Users.Session @doc """ Gets a single session. diff --git a/apps/fg_http/lib/fg_http/users.ex b/apps/cf_http/lib/cf_http/users.ex similarity index 94% rename from apps/fg_http/lib/fg_http/users.ex rename to apps/cf_http/lib/cf_http/users.ex index a6de1b016..579153e3f 100644 --- a/apps/fg_http/lib/fg_http/users.ex +++ b/apps/cf_http/lib/cf_http/users.ex @@ -1,13 +1,13 @@ -defmodule FgHttp.Users do +defmodule CfHttp.Users do @moduledoc """ The Users context. """ import Ecto.Query, warn: false - alias FgHttp.Repo + alias CfHttp.Repo - alias FgCommon.FgCrypto - alias FgHttp.Users.User + alias CfCommon.CfCrypto + alias CfHttp.Users.User # one hour @sign_in_token_validity_secs 3600 @@ -41,7 +41,7 @@ defmodule FgHttp.Users do def sign_in_keys do %{ - sign_in_token: FgCrypto.rand_string(), + sign_in_token: CfCrypto.rand_string(), sign_in_token_created_at: DateTime.utc_now() } end diff --git a/apps/fg_http/lib/fg_http/users/password_helpers.ex b/apps/cf_http/lib/cf_http/users/password_helpers.ex similarity index 95% rename from apps/fg_http/lib/fg_http/users/password_helpers.ex rename to apps/cf_http/lib/cf_http/users/password_helpers.ex index 688907dab..ad383993d 100644 --- a/apps/fg_http/lib/fg_http/users/password_helpers.ex +++ b/apps/cf_http/lib/cf_http/users/password_helpers.ex @@ -1,4 +1,4 @@ -defmodule FgHttp.Users.PasswordHelpers do +defmodule CfHttp.Users.PasswordHelpers do @moduledoc """ Helpers for validating changesets with passwords """ diff --git a/apps/fg_http/lib/fg_http/users/password_reset.ex b/apps/cf_http/lib/cf_http/users/password_reset.ex similarity index 92% rename from apps/fg_http/lib/fg_http/users/password_reset.ex rename to apps/cf_http/lib/cf_http/users/password_reset.ex index 7b1933f41..7fc718a95 100644 --- a/apps/fg_http/lib/fg_http/users/password_reset.ex +++ b/apps/cf_http/lib/cf_http/users/password_reset.ex @@ -1,13 +1,13 @@ -defmodule FgHttp.Users.PasswordReset do +defmodule CfHttp.Users.PasswordReset do @moduledoc """ Schema for PasswordReset """ use Ecto.Schema import Ecto.Changeset - import FgHttp.Users.PasswordHelpers + import CfHttp.Users.PasswordHelpers - alias FgCommon.FgCrypto + alias CfCommon.CfCrypto @token_num_bytes 8 # 1 day @@ -61,7 +61,7 @@ defmodule FgHttp.Users.PasswordReset do def token_validity_secs, do: @token_validity_secs defp generate_reset_token(%Ecto.Changeset{valid?: true} = changeset) do - put_change(changeset, :reset_token, FgCrypto.rand_token(@token_num_bytes)) + put_change(changeset, :reset_token, CfCrypto.rand_token(@token_num_bytes)) end defp clear_token_fields( diff --git a/apps/fg_http/lib/fg_http/users/session.ex b/apps/cf_http/lib/cf_http/users/session.ex similarity index 94% rename from apps/fg_http/lib/fg_http/users/session.ex rename to apps/cf_http/lib/cf_http/users/session.ex index cd4bd44db..5b21d5e02 100644 --- a/apps/fg_http/lib/fg_http/users/session.ex +++ b/apps/cf_http/lib/cf_http/users/session.ex @@ -1,11 +1,11 @@ -defmodule FgHttp.Users.Session do +defmodule CfHttp.Users.Session do @moduledoc """ Represents a Session """ use Ecto.Schema import Ecto.Changeset - alias FgHttp.{Users, Users.User} + alias CfHttp.{Users, Users.User} schema "users" do field :email, :string diff --git a/apps/fg_http/lib/fg_http/users/user.ex b/apps/cf_http/lib/cf_http/users/user.ex similarity index 94% rename from apps/fg_http/lib/fg_http/users/user.ex rename to apps/cf_http/lib/cf_http/users/user.ex index fb4423d0a..ae54388bd 100644 --- a/apps/fg_http/lib/fg_http/users/user.ex +++ b/apps/cf_http/lib/cf_http/users/user.ex @@ -1,14 +1,14 @@ -defmodule FgHttp.Users.User do +defmodule CfHttp.Users.User do @moduledoc """ Represents a User I guess """ use Ecto.Schema import Ecto.Changeset - import FgHttp.Users.PasswordHelpers + import CfHttp.Users.PasswordHelpers - alias FgCommon.FgMap - alias FgHttp.Devices.Device + alias CfCommon.CfMap + alias CfHttp.Devices.Device schema "users" do field :email, :string @@ -69,14 +69,14 @@ defmodule FgHttp.Users.User do "current_password" => nil } = attrs ) do - update_changeset(user, FgMap.compact(attrs)) + update_changeset(user, CfMap.compact(attrs)) end def update_changeset( user, %{"password" => "", "password_confirmation" => "", "current_password" => ""} = attrs ) do - update_changeset(user, FgMap.compact(attrs, "")) + update_changeset(user, CfMap.compact(attrs, "")) end def update_changeset( diff --git a/apps/cf_http/lib/cf_http/vault.ex b/apps/cf_http/lib/cf_http/vault.ex new file mode 100644 index 000000000..039ce21d0 --- /dev/null +++ b/apps/cf_http/lib/cf_http/vault.ex @@ -0,0 +1,7 @@ +defmodule CfHttp.Vault do + @moduledoc """ + Manages encrypted DB fields. + """ + + use Cloak.Vault, otp_app: :cf_http +end diff --git a/apps/fg_http/lib/fg_http_web.ex b/apps/cf_http/lib/cf_http_web.ex similarity index 71% rename from apps/fg_http/lib/fg_http_web.ex rename to apps/cf_http/lib/cf_http_web.ex index 03cf25554..15ec6cb43 100644 --- a/apps/fg_http/lib/fg_http_web.ex +++ b/apps/cf_http/lib/cf_http_web.ex @@ -1,12 +1,12 @@ -defmodule FgHttpWeb do +defmodule CfHttpWeb do @moduledoc """ The entrypoint for defining your web interface, such as controllers, views, channels and so on. This can be used in your application as: - use FgHttpWeb, :controller - use FgHttpWeb, :view + use CfHttpWeb, :controller + use CfHttpWeb, :view The definitions below will be executed for every view, controller, etc, so keep them short and clean, focused @@ -19,20 +19,20 @@ defmodule FgHttpWeb do def controller do quote do - use Phoenix.Controller, namespace: FgHttpWeb + use Phoenix.Controller, namespace: CfHttpWeb import Plug.Conn - import FgHttpWeb.Gettext + import CfHttpWeb.Gettext import Phoenix.LiveView.Controller - alias FgHttpWeb.Router.Helpers, as: Routes + alias CfHttpWeb.Router.Helpers, as: Routes end end def view do quote do use Phoenix.View, - root: "lib/fg_http_web/templates", - namespace: FgHttpWeb + root: "lib/cf_http_web/templates", + namespace: CfHttpWeb # Import convenience functions from controllers import Phoenix.Controller, only: [get_flash: 1, get_flash: 2, view_module: 1] @@ -40,23 +40,23 @@ defmodule FgHttpWeb do # Use all HTML functionality (forms, tags, etc) use Phoenix.HTML - import FgHttpWeb.ErrorHelpers - import FgHttpWeb.Gettext + import CfHttpWeb.ErrorHelpers + import CfHttpWeb.Gettext import Phoenix.LiveView.Helpers - alias FgHttpWeb.Router.Helpers, as: Routes + alias CfHttpWeb.Router.Helpers, as: Routes def render_common(template, assigns \\ []) do - render(FgHttpWeb.CommonView, template, assigns) + render(CfHttpWeb.CommonView, template, assigns) end end end def live_view do quote do - use Phoenix.LiveView, layout: {FgHttpWeb.LayoutView, "live.html"} - import FgHttpWeb.LiveHelpers + use Phoenix.LiveView, layout: {CfHttpWeb.LayoutView, "live.html"} + import CfHttpWeb.LiveHelpers - @events_module Application.compile_env(:fg_http, :events_module) + @events_module Application.compile_env(:cf_http, :events_module) unquote(view_helpers()) end @@ -82,7 +82,7 @@ defmodule FgHttpWeb do def channel do quote do use Phoenix.Channel - import FgHttpWeb.Gettext + import CfHttpWeb.Gettext end end @@ -97,9 +97,9 @@ defmodule FgHttpWeb do # Import basic rendering functionality (render, render_layout, etc) import Phoenix.View - import FgHttpWeb.ErrorHelpers - import FgHttpWeb.Gettext - alias FgHttpWeb.Router.Helpers, as: Routes + import CfHttpWeb.ErrorHelpers + import CfHttpWeb.Gettext + alias CfHttpWeb.Router.Helpers, as: Routes end end diff --git a/apps/fg_http/lib/fg_http_web/channels/user_socket.ex b/apps/cf_http/lib/cf_http_web/channels/user_socket.ex similarity index 86% rename from apps/fg_http/lib/fg_http_web/channels/user_socket.ex rename to apps/cf_http/lib/cf_http_web/channels/user_socket.ex index 99ad60988..b71ba25ed 100644 --- a/apps/fg_http/lib/fg_http_web/channels/user_socket.ex +++ b/apps/cf_http/lib/cf_http_web/channels/user_socket.ex @@ -1,8 +1,8 @@ -defmodule FgHttpWeb.UserSocket do +defmodule CfHttpWeb.UserSocket do use Phoenix.Socket ## Channels - # channel "room:*", FgHttpWeb.RoomChannel + # channel "room:*", CfHttpWeb.RoomChannel # Socket params are passed from the client and can # be used to verify and authenticate a user. After @@ -26,7 +26,7 @@ defmodule FgHttpWeb.UserSocket do # Would allow you to broadcast a "disconnect" event and terminate # all active sockets and channels for a given user: # - # FgHttpWeb.Endpoint.broadcast("user_socket:#{user.id}", "disconnect", %{}) + # CfHttpWeb.Endpoint.broadcast("user_socket:#{user.id}", "disconnect", %{}) # # Returning `nil` makes this socket anonymous. def id(_socket), do: nil diff --git a/apps/fg_http/lib/fg_http_web/controllers/session_controller.ex b/apps/cf_http/lib/cf_http_web/controllers/session_controller.ex similarity index 89% rename from apps/fg_http/lib/fg_http_web/controllers/session_controller.ex rename to apps/cf_http/lib/cf_http_web/controllers/session_controller.ex index ba586d840..f3c92e74e 100644 --- a/apps/fg_http/lib/fg_http_web/controllers/session_controller.ex +++ b/apps/cf_http/lib/cf_http_web/controllers/session_controller.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.SessionController do +defmodule CfHttpWeb.SessionController do @moduledoc """ Implements the CRUD for a Session """ - alias FgHttp.Users - use FgHttpWeb, :controller + alias CfHttp.Users + use CfHttpWeb, :controller # GET /sign_in/:token def create(conn, %{"token" => token}) do diff --git a/apps/fg_http/lib/fg_http_web/controllers/user_controller.ex b/apps/cf_http/lib/cf_http_web/controllers/user_controller.ex similarity index 92% rename from apps/fg_http/lib/fg_http_web/controllers/user_controller.ex rename to apps/cf_http/lib/cf_http_web/controllers/user_controller.ex index 9fbf26fab..e1bce4eac 100644 --- a/apps/fg_http/lib/fg_http_web/controllers/user_controller.ex +++ b/apps/cf_http/lib/cf_http_web/controllers/user_controller.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.UserController do +defmodule CfHttpWeb.UserController do @moduledoc """ Implements synchronous User requests. """ - alias FgHttp.Users - use FgHttpWeb, :controller + alias CfHttp.Users + use CfHttpWeb, :controller plug :redirect_unauthenticated diff --git a/apps/fg_http/lib/fg_http_web/endpoint.ex b/apps/cf_http/lib/cf_http_web/endpoint.ex similarity index 81% rename from apps/fg_http/lib/fg_http_web/endpoint.ex rename to apps/cf_http/lib/cf_http_web/endpoint.ex index a95b4ab29..542141380 100644 --- a/apps/fg_http/lib/fg_http_web/endpoint.ex +++ b/apps/cf_http/lib/cf_http_web/endpoint.ex @@ -1,20 +1,20 @@ -defmodule FgHttpWeb.Endpoint do - use Phoenix.Endpoint, otp_app: :fg_http +defmodule CfHttpWeb.Endpoint do + use Phoenix.Endpoint, otp_app: :cf_http # The session will be stored in the cookie and signed, # this means its contents can be read but not tampered with. # Set :encryption_salt if you would also like to encrypt it. @session_options [ store: :cookie, - key: "_fg_http_key", + key: "_cf_http_key", signing_salt: "Z9eq8iof" ] - if Application.get_env(:fg_http, :sql_sandbox) do + if Application.get_env(:cf_http, :sql_sandbox) do plug Phoenix.Ecto.SQL.Sandbox end - socket "/socket", FgHttpWeb.UserSocket, + socket "/socket", CfHttpWeb.UserSocket, websocket: true, longpoll: false @@ -26,7 +26,7 @@ defmodule FgHttpWeb.Endpoint do # when deploying your static files in production. plug Plug.Static, at: "/", - from: :fg_http, + from: :cf_http, gzip: false, only: ~w(css fonts images js favicon.ico robots.txt) @@ -36,7 +36,7 @@ defmodule FgHttpWeb.Endpoint do socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket plug Phoenix.LiveReloader plug Phoenix.CodeReloader - plug Phoenix.Ecto.CheckRepoStatus, otp_app: :fg_http + plug Phoenix.Ecto.CheckRepoStatus, otp_app: :cf_http end plug Plug.RequestId @@ -50,5 +50,5 @@ defmodule FgHttpWeb.Endpoint do plug Plug.MethodOverride plug Plug.Head plug Plug.Session, @session_options - plug FgHttpWeb.Router + plug CfHttpWeb.Router end diff --git a/apps/fg_http/lib/fg_http_web/events.ex b/apps/cf_http/lib/cf_http_web/events.ex similarity index 83% rename from apps/fg_http/lib/fg_http_web/events.ex rename to apps/cf_http/lib/cf_http_web/events.ex index f3b980621..a89daf4ab 100644 --- a/apps/fg_http/lib/fg_http_web/events.ex +++ b/apps/cf_http/lib/cf_http_web/events.ex @@ -1,9 +1,9 @@ -defmodule FgHttpWeb.Events do +defmodule CfHttpWeb.Events do @moduledoc """ Handles interfacing with other processes in the system. """ - alias FgHttp.{Devices, Rules} + alias CfHttp.{Devices, Rules} def create_device do GenServer.call(vpn_pid(), :create_device) @@ -30,10 +30,10 @@ defmodule FgHttpWeb.Events do end def vpn_pid do - :global.whereis_name(:fg_vpn_server) + :global.whereis_name(:cf_vpn_server) end def wall_pid do - :global.whereis_name(:fg_wall_server) + :global.whereis_name(:cf_wall_server) end end diff --git a/apps/fg_http/lib/fg_http_web/gettext.ex b/apps/cf_http/lib/cf_http_web/gettext.ex similarity index 86% rename from apps/fg_http/lib/fg_http_web/gettext.ex rename to apps/cf_http/lib/cf_http_web/gettext.ex index 7887d147c..dd22e2732 100644 --- a/apps/fg_http/lib/fg_http_web/gettext.ex +++ b/apps/cf_http/lib/cf_http_web/gettext.ex @@ -1,11 +1,11 @@ -defmodule FgHttpWeb.Gettext do +defmodule CfHttpWeb.Gettext do @moduledoc """ A module providing Internationalization with a gettext-based API. By using [Gettext](https://hexdocs.pm/gettext), your module gains a set of macros for translations, for example: - import FgHttpWeb.Gettext + import CfHttpWeb.Gettext # Simple translation gettext("Here is the string to translate") @@ -20,5 +20,5 @@ defmodule FgHttpWeb.Gettext do See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage. """ - use Gettext, otp_app: :fg_http + use Gettext, otp_app: :cf_http end diff --git a/apps/fg_http/lib/fg_http_web/live/account_live/form_component.ex b/apps/cf_http/lib/cf_http_web/live/account_live/form_component.ex similarity index 86% rename from apps/fg_http/lib/fg_http_web/live/account_live/form_component.ex rename to apps/cf_http/lib/cf_http_web/live/account_live/form_component.ex index 2705c0938..bcd3c9c61 100644 --- a/apps/fg_http/lib/fg_http_web/live/account_live/form_component.ex +++ b/apps/cf_http/lib/cf_http_web/live/account_live/form_component.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.AccountLive.FormComponent do +defmodule CfHttpWeb.AccountLive.FormComponent do @moduledoc """ Handles the edit account form. """ - use FgHttpWeb, :live_component + use CfHttpWeb, :live_component - alias FgHttp.Users + alias CfHttp.Users def update(assigns, socket) do changeset = Users.change_user(assigns.user) diff --git a/apps/fg_http/lib/fg_http_web/live/account_live/form_component.html.leex b/apps/cf_http/lib/cf_http_web/live/account_live/form_component.html.leex similarity index 100% rename from apps/fg_http/lib/fg_http_web/live/account_live/form_component.html.leex rename to apps/cf_http/lib/cf_http_web/live/account_live/form_component.html.leex diff --git a/apps/fg_http/lib/fg_http_web/live/account_live/show.html.leex b/apps/cf_http/lib/cf_http_web/live/account_live/show.html.leex similarity index 96% rename from apps/fg_http/lib/fg_http_web/live/account_live/show.html.leex rename to apps/cf_http/lib/cf_http_web/live/account_live/show.html.leex index 7acd35597..1e59892af 100644 --- a/apps/fg_http/lib/fg_http_web/live/account_live/show.html.leex +++ b/apps/cf_http/lib/cf_http_web/live/account_live/show.html.leex @@ -1,6 +1,6 @@ <%= if @live_action == :edit do %> <%= live_modal( - FgHttpWeb.AccountLive.FormComponent, + CfHttpWeb.AccountLive.FormComponent, return_to: Routes.account_show_path(@socket, :show), title: "Edit Account", id: "user-#{@current_user.id}", diff --git a/apps/fg_http/lib/fg_http_web/live/account_live/show_live.ex b/apps/cf_http/lib/cf_http_web/live/account_live/show_live.ex similarity index 82% rename from apps/fg_http/lib/fg_http_web/live/account_live/show_live.ex rename to apps/cf_http/lib/cf_http_web/live/account_live/show_live.ex index a5c442a1f..fb131b072 100644 --- a/apps/fg_http/lib/fg_http_web/live/account_live/show_live.ex +++ b/apps/cf_http/lib/cf_http_web/live/account_live/show_live.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.AccountLive.Show do +defmodule CfHttpWeb.AccountLive.Show do @moduledoc """ Handles Account-related things. """ - use FgHttpWeb, :live_view + use CfHttpWeb, :live_view - alias FgHttp.Users + alias CfHttp.Users @impl true def mount(params, session, socket) do diff --git a/apps/fg_http/lib/fg_http_web/live/device_live/form_component.ex b/apps/cf_http/lib/cf_http_web/live/device_live/form_component.ex similarity index 86% rename from apps/fg_http/lib/fg_http_web/live/device_live/form_component.ex rename to apps/cf_http/lib/cf_http_web/live/device_live/form_component.ex index 8a0750a3c..05cfc7944 100644 --- a/apps/fg_http/lib/fg_http_web/live/device_live/form_component.ex +++ b/apps/cf_http/lib/cf_http_web/live/device_live/form_component.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.DeviceLive.FormComponent do +defmodule CfHttpWeb.DeviceLive.FormComponent do @moduledoc """ Handles device form. """ - use FgHttpWeb, :live_component + use CfHttpWeb, :live_component - alias FgHttp.Devices + alias CfHttp.Devices def update(assigns, socket) do changeset = Devices.change_device(assigns.device) diff --git a/apps/fg_http/lib/fg_http_web/live/device_live/form_component.html.leex b/apps/cf_http/lib/cf_http_web/live/device_live/form_component.html.leex similarity index 100% rename from apps/fg_http/lib/fg_http_web/live/device_live/form_component.html.leex rename to apps/cf_http/lib/cf_http_web/live/device_live/form_component.html.leex diff --git a/apps/fg_http/lib/fg_http_web/live/device_live/index.html.leex b/apps/cf_http/lib/cf_http_web/live/device_live/index.html.leex similarity index 100% rename from apps/fg_http/lib/fg_http_web/live/device_live/index.html.leex rename to apps/cf_http/lib/cf_http_web/live/device_live/index.html.leex diff --git a/apps/fg_http/lib/fg_http_web/live/device_live/index_live.ex b/apps/cf_http/lib/cf_http_web/live/device_live/index_live.ex similarity index 92% rename from apps/fg_http/lib/fg_http_web/live/device_live/index_live.ex rename to apps/cf_http/lib/cf_http_web/live/device_live/index_live.ex index 2d9b2cf86..43fbb4ae8 100644 --- a/apps/fg_http/lib/fg_http_web/live/device_live/index_live.ex +++ b/apps/cf_http/lib/cf_http_web/live/device_live/index_live.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.DeviceLive.Index do +defmodule CfHttpWeb.DeviceLive.Index do @moduledoc """ Handles Device LiveViews. """ - use FgHttpWeb, :live_view + use CfHttpWeb, :live_view - alias FgHttp.Devices + alias CfHttp.Devices def mount(params, session, socket) do {:ok, assign_defaults(params, session, socket, &load_data/2)} diff --git a/apps/fg_http/lib/fg_http_web/live/device_live/rule_list_component.ex b/apps/cf_http/lib/cf_http_web/live/device_live/rule_list_component.ex similarity index 94% rename from apps/fg_http/lib/fg_http_web/live/device_live/rule_list_component.ex rename to apps/cf_http/lib/cf_http_web/live/device_live/rule_list_component.ex index d9025f950..523c057c2 100644 --- a/apps/fg_http/lib/fg_http_web/live/device_live/rule_list_component.ex +++ b/apps/cf_http/lib/cf_http_web/live/device_live/rule_list_component.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.DeviceLive.RuleListComponent do +defmodule CfHttpWeb.DeviceLive.RuleListComponent do @moduledoc """ Manages the Allowlist view. """ - use FgHttpWeb, :live_component + use CfHttpWeb, :live_component - alias FgHttp.Rules + alias CfHttp.Rules @impl true def update(assigns, socket) do diff --git a/apps/fg_http/lib/fg_http_web/live/device_live/rule_list_component.html.leex b/apps/cf_http/lib/cf_http_web/live/device_live/rule_list_component.html.leex similarity index 100% rename from apps/fg_http/lib/fg_http_web/live/device_live/rule_list_component.html.leex rename to apps/cf_http/lib/cf_http_web/live/device_live/rule_list_component.html.leex diff --git a/apps/fg_http/lib/fg_http_web/live/device_live/show.html.leex b/apps/cf_http/lib/cf_http_web/live/device_live/show.html.leex similarity index 94% rename from apps/fg_http/lib/fg_http_web/live/device_live/show.html.leex rename to apps/cf_http/lib/cf_http_web/live/device_live/show.html.leex index d30efb7c6..9951f9fee 100644 --- a/apps/fg_http/lib/fg_http_web/live/device_live/show.html.leex +++ b/apps/cf_http/lib/cf_http_web/live/device_live/show.html.leex @@ -1,6 +1,6 @@ <%= if @live_action == :edit do %> <%= live_modal( - FgHttpWeb.DeviceLive.FormComponent, + CfHttpWeb.DeviceLive.FormComponent, return_to: Routes.device_show_path(@socket, :show, @device), title: "Edit #{@device.name}", id: "device-#{@device.id}", @@ -75,7 +75,7 @@
<%= live_component( @socket, - FgHttpWeb.DeviceLive.RuleListComponent, + CfHttpWeb.DeviceLive.RuleListComponent, title: "Allowlist", id: :allowlist, current_user: @current_user, @@ -102,7 +102,7 @@ DNS = 1.1.1.1, 1.0.0.1 PublicKey = <%= @device.server_public_key %> PresharedKey = <%= @device.preshared_key %> AllowedIPs = 0.0.0.0/0, ::/0 -Endpoint = <%= Application.fetch_env!(:fg_http, :vpn_endpoint) %> +Endpoint = <%= Application.fetch_env!(:cf_http, :vpn_endpoint) %>
Or scan the QR code with your mobile phone:
@@ -115,7 +115,7 @@ Endpoint = <%= Application.fetch_env!(:fg_http, :vpn_endpoint) %>
<%= live_component( @socket, - FgHttpWeb.DeviceLive.RuleListComponent, + CfHttpWeb.DeviceLive.RuleListComponent, title: "Denylist", id: :denylist, current_user: @current_user, diff --git a/apps/fg_http/lib/fg_http_web/live/device_live/show_live.ex b/apps/cf_http/lib/cf_http_web/live/device_live/show_live.ex similarity index 93% rename from apps/fg_http/lib/fg_http_web/live/device_live/show_live.ex rename to apps/cf_http/lib/cf_http_web/live/device_live/show_live.ex index 8ae5ae8a2..057b84c52 100644 --- a/apps/fg_http/lib/fg_http_web/live/device_live/show_live.ex +++ b/apps/cf_http/lib/cf_http_web/live/device_live/show_live.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.DeviceLive.Show do +defmodule CfHttpWeb.DeviceLive.Show do @moduledoc """ Handles Device LiveViews. """ - use FgHttpWeb, :live_view + use CfHttpWeb, :live_view - alias FgHttp.Devices + alias CfHttp.Devices @impl true def mount(params, session, socket) do diff --git a/apps/fg_http/lib/fg_http_web/live/modal_component.ex b/apps/cf_http/lib/cf_http_web/live/modal_component.ex similarity index 93% rename from apps/fg_http/lib/fg_http_web/live/modal_component.ex rename to apps/cf_http/lib/cf_http_web/live/modal_component.ex index 5da14ff86..a44e11428 100644 --- a/apps/fg_http/lib/fg_http_web/live/modal_component.ex +++ b/apps/cf_http/lib/cf_http_web/live/modal_component.ex @@ -1,8 +1,8 @@ -defmodule FgHttpWeb.ModalComponent do +defmodule CfHttpWeb.ModalComponent do @moduledoc """ Wraps a component in a modal. """ - use FgHttpWeb, :live_component + use CfHttpWeb, :live_component @impl true def render(assigns) do diff --git a/apps/fg_http/lib/fg_http_web/live/password_reset_live/edit.html.leex b/apps/cf_http/lib/cf_http_web/live/password_reset_live/edit.html.leex similarity index 100% rename from apps/fg_http/lib/fg_http_web/live/password_reset_live/edit.html.leex rename to apps/cf_http/lib/cf_http_web/live/password_reset_live/edit.html.leex diff --git a/apps/fg_http/lib/fg_http_web/live/password_reset_live/edit_live.ex b/apps/cf_http/lib/cf_http_web/live/password_reset_live/edit_live.ex similarity index 92% rename from apps/fg_http/lib/fg_http_web/live/password_reset_live/edit_live.ex rename to apps/cf_http/lib/cf_http_web/live/password_reset_live/edit_live.ex index 7e617bab4..e8bd3727e 100644 --- a/apps/fg_http/lib/fg_http_web/live/password_reset_live/edit_live.ex +++ b/apps/cf_http/lib/cf_http_web/live/password_reset_live/edit_live.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.PasswordResetLive.Edit do +defmodule CfHttpWeb.PasswordResetLive.Edit do @moduledoc """ Handles PasswordReset Live Views. """ - use FgHttpWeb, :live_view + use CfHttpWeb, :live_view - alias FgHttp.PasswordResets + alias CfHttp.PasswordResets def mount(%{"reset_token" => reset_token}, _session, socket) do changeset = diff --git a/apps/fg_http/lib/fg_http_web/live/password_reset_live/new.html.leex b/apps/cf_http/lib/cf_http_web/live/password_reset_live/new.html.leex similarity index 100% rename from apps/fg_http/lib/fg_http_web/live/password_reset_live/new.html.leex rename to apps/cf_http/lib/cf_http_web/live/password_reset_live/new.html.leex diff --git a/apps/fg_http/lib/fg_http_web/live/password_reset_live/new_live.ex b/apps/cf_http/lib/cf_http_web/live/password_reset_live/new_live.ex similarity index 92% rename from apps/fg_http/lib/fg_http_web/live/password_reset_live/new_live.ex rename to apps/cf_http/lib/cf_http_web/live/password_reset_live/new_live.ex index 64c6db7c4..0206f33cd 100644 --- a/apps/fg_http/lib/fg_http_web/live/password_reset_live/new_live.ex +++ b/apps/cf_http/lib/cf_http_web/live/password_reset_live/new_live.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.PasswordResetLive.New do +defmodule CfHttpWeb.PasswordResetLive.New do @moduledoc """ Handles PasswordReset Live Views. """ - use FgHttpWeb, :live_view + use CfHttpWeb, :live_view - alias FgHttp.{Email, Mailer, PasswordResets} + alias CfHttp.{Email, Mailer, PasswordResets} def mount(_params, _session, socket) do changeset = PasswordResets.new_password_reset() diff --git a/apps/fg_http/lib/fg_http_web/live/root_live/index.html.leex b/apps/cf_http/lib/cf_http_web/live/root_live/index.html.leex similarity index 100% rename from apps/fg_http/lib/fg_http_web/live/root_live/index.html.leex rename to apps/cf_http/lib/cf_http_web/live/root_live/index.html.leex diff --git a/apps/fg_http/lib/fg_http_web/live/root_live/index_live.ex b/apps/cf_http/lib/cf_http_web/live/root_live/index_live.ex similarity index 84% rename from apps/fg_http/lib/fg_http_web/live/root_live/index_live.ex rename to apps/cf_http/lib/cf_http_web/live/root_live/index_live.ex index 28acb37dc..f38d773ee 100644 --- a/apps/fg_http/lib/fg_http_web/live/root_live/index_live.ex +++ b/apps/cf_http/lib/cf_http_web/live/root_live/index_live.ex @@ -1,8 +1,8 @@ -defmodule FgHttpWeb.RootLive.Index do +defmodule CfHttpWeb.RootLive.Index do @moduledoc """ The Root view; redirects to devices or sign in based on session. """ - use FgHttpWeb, :live_view + use CfHttpWeb, :live_view def mount(_params, %{"user_id" => _user_id}, socket) do {:ok, redirect(socket, to: Routes.device_index_path(socket, :index))} diff --git a/apps/fg_http/lib/fg_http_web/live/session_live/new.html.leex b/apps/cf_http/lib/cf_http_web/live/session_live/new.html.leex similarity index 95% rename from apps/fg_http/lib/fg_http_web/live/session_live/new.html.leex rename to apps/cf_http/lib/cf_http_web/live/session_live/new.html.leex index ca86fdeef..4240d967b 100644 --- a/apps/fg_http/lib/fg_http_web/live/session_live/new.html.leex +++ b/apps/cf_http/lib/cf_http_web/live/session_live/new.html.leex @@ -40,7 +40,7 @@
- <%= unless Application.get_env(:fg_http, :disable_signup) do %> + <%= unless Application.get_env(:cf_http, :disable_signup) do %> <%= live_redirect("Sign up", to: Routes.user_new_path(@socket, :new)) %> <% end %> <%= live_redirect("Forgot your password?", to: Routes.password_reset_new_path(@socket, :new)) %> diff --git a/apps/fg_http/lib/fg_http_web/live/session_live/new_live.ex b/apps/cf_http/lib/cf_http_web/live/session_live/new_live.ex similarity index 89% rename from apps/fg_http/lib/fg_http_web/live/session_live/new_live.ex rename to apps/cf_http/lib/cf_http_web/live/session_live/new_live.ex index 5aa5ca807..8cb856e54 100644 --- a/apps/fg_http/lib/fg_http_web/live/session_live/new_live.ex +++ b/apps/cf_http/lib/cf_http_web/live/session_live/new_live.ex @@ -1,11 +1,11 @@ -defmodule FgHttpWeb.SessionLive.New do +defmodule CfHttpWeb.SessionLive.New do @moduledoc """ Handles sign in. """ - use FgHttpWeb, :live_view + use CfHttpWeb, :live_view - alias FgCommon.FgMap - alias FgHttp.{Sessions, Users} + alias CfCommon.CfMap + alias CfHttp.{Sessions, Users} def mount(_params, _session, socket) do changeset = Sessions.new_session() @@ -69,10 +69,10 @@ defmodule FgHttpWeb.SessionLive.New do end defp signups_disabled? do - Application.fetch_env!(:fg_http, :disable_signup) + Application.fetch_env!(:cf_http, :disable_signup) end defp sign_in_params do - FgMap.stringify_keys(Users.sign_in_keys()) + CfMap.stringify_keys(Users.sign_in_keys()) end end diff --git a/apps/fg_http/lib/fg_http_web/live/user_live/new.html.leex b/apps/cf_http/lib/cf_http_web/live/user_live/new.html.leex similarity index 100% rename from apps/fg_http/lib/fg_http_web/live/user_live/new.html.leex rename to apps/cf_http/lib/cf_http_web/live/user_live/new.html.leex diff --git a/apps/fg_http/lib/fg_http_web/live/user_live/new_live.ex b/apps/cf_http/lib/cf_http_web/live/user_live/new_live.ex similarity index 87% rename from apps/fg_http/lib/fg_http_web/live/user_live/new_live.ex rename to apps/cf_http/lib/cf_http_web/live/user_live/new_live.ex index 4b8e7e485..ffcbc1b2e 100644 --- a/apps/fg_http/lib/fg_http_web/live/user_live/new_live.ex +++ b/apps/cf_http/lib/cf_http_web/live/user_live/new_live.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.UserLive.New do +defmodule CfHttpWeb.UserLive.New do @moduledoc """ LiveView for user sign up. """ - use FgHttpWeb, :live_view + use CfHttpWeb, :live_view - alias FgHttp.Users + alias CfHttp.Users def mount(_params, _session, socket) do changeset = Users.new_user() diff --git a/apps/fg_http/lib/fg_http_web/mock_events.ex b/apps/cf_http/lib/cf_http_web/mock_events.ex similarity index 73% rename from apps/fg_http/lib/fg_http_web/mock_events.ex rename to apps/cf_http/lib/cf_http_web/mock_events.ex index a7d99c743..54f731900 100644 --- a/apps/fg_http/lib/fg_http_web/mock_events.ex +++ b/apps/cf_http/lib/cf_http_web/mock_events.ex @@ -1,10 +1,10 @@ -defmodule FgHttpWeb.MockEvents do +defmodule CfHttpWeb.MockEvents do @moduledoc """ A Mock module for testing external events - XXX: This is used because FgHttp tests will launch multiple FgVpn servers. - Instead, we should find a way to maintain a persistent link to one FgVpn server - inside FgHttp and use that for the tests. + XXX: This is used because CfHttp tests will launch multiple CfVpn servers. + Instead, we should find a way to maintain a persistent link to one CfVpn server + inside CfHttp and use that for the tests. """ def create_device do diff --git a/apps/fg_http/lib/fg_http_web/router.ex b/apps/cf_http/lib/cf_http_web/router.ex similarity index 88% rename from apps/fg_http/lib/fg_http_web/router.ex rename to apps/cf_http/lib/cf_http_web/router.ex index 2f5509bc3..457366fbe 100644 --- a/apps/fg_http/lib/fg_http_web/router.ex +++ b/apps/cf_http/lib/cf_http_web/router.ex @@ -1,9 +1,9 @@ -defmodule FgHttpWeb.Router do +defmodule CfHttpWeb.Router do @moduledoc """ Main Application Router """ - use FgHttpWeb, :router + use CfHttpWeb, :router # View emails locally in development if Mix.env() == :dev do @@ -14,7 +14,7 @@ defmodule FgHttpWeb.Router do plug :accepts, ["html"] plug :fetch_session plug :fetch_live_flash - plug :put_root_layout, {FgHttpWeb.LayoutView, :root} + plug :put_root_layout, {CfHttpWeb.LayoutView, :root} plug :protect_from_forgery plug :put_secure_browser_headers end @@ -23,7 +23,7 @@ defmodule FgHttpWeb.Router do plug :accepts, ["json"] end - scope "/", FgHttpWeb do + scope "/", CfHttpWeb do pipe_through :browser live "/sign_in", SessionLive.New, :new diff --git a/apps/fg_http/lib/fg_http_web/templates/email/password_reset.html.eex b/apps/cf_http/lib/cf_http_web/templates/email/password_reset.html.eex similarity index 53% rename from apps/fg_http/lib/fg_http_web/templates/email/password_reset.html.eex rename to apps/cf_http/lib/cf_http_web/templates/email/password_reset.html.eex index 398822855..7486f6fb5 100644 --- a/apps/fg_http/lib/fg_http_web/templates/email/password_reset.html.eex +++ b/apps/cf_http/lib/cf_http_web/templates/email/password_reset.html.eex @@ -1,5 +1,5 @@ <%= link( "Click here to reset your password.", - to: Routes.password_reset_edit_url(FgHttpWeb.Endpoint, :edit, @reset_token) + to: Routes.password_reset_edit_url(CfHttpWeb.Endpoint, :edit, @reset_token) ) %> diff --git a/apps/fg_http/lib/fg_http_web/templates/email/password_reset.text.eex b/apps/cf_http/lib/cf_http_web/templates/email/password_reset.text.eex similarity index 58% rename from apps/fg_http/lib/fg_http_web/templates/email/password_reset.text.eex rename to apps/cf_http/lib/cf_http_web/templates/email/password_reset.text.eex index 813c5eb43..4de404a26 100644 --- a/apps/fg_http/lib/fg_http_web/templates/email/password_reset.text.eex +++ b/apps/cf_http/lib/cf_http_web/templates/email/password_reset.text.eex @@ -1,3 +1,3 @@ Copy and paste the following URL into your browser to reset your password: -<%= Routes.password_reset_edit_url(FgHttpWeb.Endpoint, :edit, @reset_token) %> +<%= Routes.password_reset_edit_url(CfHttpWeb.Endpoint, :edit, @reset_token) %> diff --git a/apps/fg_http/lib/fg_http_web/templates/layout/app.html.eex b/apps/cf_http/lib/cf_http_web/templates/layout/app.html.eex similarity index 100% rename from apps/fg_http/lib/fg_http_web/templates/layout/app.html.eex rename to apps/cf_http/lib/cf_http_web/templates/layout/app.html.eex diff --git a/apps/fg_http/lib/fg_http_web/templates/layout/email.html.eex b/apps/cf_http/lib/cf_http_web/templates/layout/email.html.eex similarity index 64% rename from apps/fg_http/lib/fg_http_web/templates/layout/email.html.eex rename to apps/cf_http/lib/cf_http_web/templates/layout/email.html.eex index 0fee29ac1..005f88540 100644 --- a/apps/fg_http/lib/fg_http_web/templates/layout/email.html.eex +++ b/apps/cf_http/lib/cf_http_web/templates/layout/email.html.eex @@ -1,6 +1,6 @@ - "> + "> <%= @inner_content %> diff --git a/apps/fg_http/lib/fg_http_web/templates/layout/live.html.leex b/apps/cf_http/lib/cf_http_web/templates/layout/live.html.leex similarity index 100% rename from apps/fg_http/lib/fg_http_web/templates/layout/live.html.leex rename to apps/cf_http/lib/cf_http_web/templates/layout/live.html.leex diff --git a/apps/fg_http/lib/fg_http_web/templates/layout/root.html.leex b/apps/cf_http/lib/cf_http_web/templates/layout/root.html.leex similarity index 95% rename from apps/fg_http/lib/fg_http_web/templates/layout/root.html.leex rename to apps/cf_http/lib/cf_http_web/templates/layout/root.html.leex index 7ecab62fb..aa98ceb01 100644 --- a/apps/fg_http/lib/fg_http_web/templates/layout/root.html.leex +++ b/apps/cf_http/lib/cf_http_web/templates/layout/root.html.leex @@ -5,7 +5,7 @@ <%= csrf_meta_tag() %> - <%= live_title_tag assigns[:page_title] || "FireGuard" %> + <%= live_title_tag assigns[:page_title] || "CloudFire" %> "/> @@ -14,7 +14,7 @@