Giter Site home page Giter Site logo

statuspal / statuspal Goto Github PK

View Code? Open in Web Editor NEW
209.0 7.0 18.0 1.56 MB

Statuspal lets you communicate your web apps/services status ๐Ÿ“ก

Home Page: https://statuspal.io

License: GNU Affero General Public License v3.0

Elixir 64.93% CSS 6.58% JavaScript 6.59% HTML 21.14% Shell 0.76%
statuspage elixir-phoenix elixir-lang docker monitoring uptime

statuspal's Introduction

Statuspal CircleCI Build Status

Statuspal lets you Monitor & Communicate your site's Status with a customizable status page. Use our SAAS https://statuspal.io or the self-hosted community edition.

Preview

Feature List

  • Customizable Status page
  • Incident/Maintenance reporting
  • Notifications (Email and Tweets)
  • Uptime graph
  • Monitoring + alerting (Only on Pro)
  • Response time graph coming soon
  • Private status pages coming soon

Statuspal Pro

The easiest way to get started is through our hosted status pages service at https://statuspal.io, you can get started and have a running status page in less than 3 minutes! and you wont have to worry about server configurations and maintenance.

Also this way you'll help us support the development of Statuspal.

Self hosted Statuspal

Alternatively you can host your own instance of Statuspal, if you want to go this way head over to our wiki page.

Contributors

Contributions to Statuspal are very welcome! To setup your development environment go ahead and follow this guide.

statuspal's People

Contributors

jarvvski avatar soundasleep avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

statuspal's Issues

Is statushq_pro.git submodule necessary for self hosted deployments

Hi guys,
This is more of a question than an issue with my approach of deploying statuspal to heroku.
When I was pushing code to heroku, like below, I saw this.

git push heroku master
Total 1902 (delta 1083), reused 1898 (delta 1082)
remote: Git submodules detected, installing:
remote: Submodule 'apps/statushq_pro' ([email protected]:messutied/statushq_pro.git) registered for path 'apps/statushq_pro'
remote: Cloning into 'apps/statushq_pro'...
remote: Host key verification failed.
remote: fatal: Could not read from remote repository.
remote:
remote: Please make sure you have the correct access rights
remote: and the repository exists.
remote: Clone of '[email protected]:messutied/statushq_pro.git' into submodule path 'apps/statushq_pro' failed
remote:
remote: !       Push rejected, submodule install failed
remote:
To ssh://heroku.com/statuspal.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://[email protected]/statuspal.git'```

[Question] API + uptimerobot/other

Hi.

Is it possible to running the "statuspal" on own server, with possible for APIv2 for uptimerobot (automatic update) and webhooks for post on discord/incl twitter?

SMTP support

It would be nice to offer SMTP support (should be very simple to implement) in addition to Mailgun; it's a standard that is supported on every mail server ever and many people hosting their own services don't like Mailgun because it's a proprietary third-party.

Pagination incidents endpoint does not work/is badly documented

I can't figure out how this is supposed to work, I'm using the following documentation: https://www.statuspal.io/api-docs/v2#tag/Incidents/operation/getIncidents

I've tried setting before to the starts_at value of the last entry I've received. Using the id also didn't work. Same with just a date. All give me 500 errors. The documentation does not give any information on what kind of value is expected.

What do I do here? Can the documentation be updated?

Errors on Raspbian (Raspberry Pi 2)

Trying to set up this neat script for personal use on my Raspberry, at home. I have encountered errors, though. One of those seems like the .env_template is nonexistent.

Generating .env file for ya!
rm: cannot remove './.env-e': No such file or directory
root@smallseq:~/statuspal# ./docker/start.sh
ERROR: Version in "./docker/docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/```

Docker build failed

Logs

root@docker-s-2vcpu-4gb-ams3-01:/statuspal# ./docker/build.sh 
+ ACCOUNT=statuspal
+ IMAGE=statuspal
+ docker build -t statuspal/statuspal:latest . -f ./docker/Dockerfile
Sending build context to Docker daemon  2.151MB
Step 1/26 : FROM elixir:alpine
1.7-alpine: Pulling from library/elixir
Digest: sha256:bf9091e3bae512b327d2b0d5d4afa9bacef7f46e0a6206405481ca4cbfe40379
Status: Downloaded newer image for elixir:alpine
 ---> 9233fdadf463
Step 2/26 : ENV MIX_ENV prod
 ---> Using cache
 ---> b9d7d1ac33f9
Step 3/26 : RUN apk add --no-cache nodejs nodejs-npm yarn bash git openssh alpine-sdk python2
 ---> Using cache
 ---> 6fa99b81a4b8
Step 4/26 : RUN mkdir /build
 ---> Using cache
 ---> 9b1beec78e5f
Step 5/26 : WORKDIR /build
 ---> Using cache
 ---> 645450297b90
Step 6/26 : COPY ./mix.* ./
 ---> Using cache
 ---> 587bc26e9e78
Step 7/26 : COPY ./apps/statushq/mix.* ./apps/statushq/
 ---> Using cache
 ---> 0aa550f32e3b
Step 8/26 : RUN echo "Compiling app..."  && mix do local.hex --force, local.rebar --force, deps.get, compile
 ---> Using cache
 ---> 74dba5222f20
Step 9/26 : COPY ./package.json ./package.json
 ---> Using cache
 ---> ee88ecd20a8d
Step 10/26 : COPY ./yarn.lock ./yarn.lock
 ---> Using cache
 ---> daf7b2050141
Step 11/26 : COPY ./.babelrc ./.babelrc
 ---> Using cache
 ---> ce4670b47445
Step 12/26 : COPY ./apps/statushq/webpack*.js ./apps/statushq/
 ---> Using cache
 ---> 10bd8aba3574
Step 13/26 : COPY ./apps/statushq/lib/statushq_web/static ./apps/statushq/lib/statushq_web/static
 ---> Using cache
 ---> 6df555bcded6
Step 14/26 : RUN mkdir -p apps/statushq/priv/static  && yarn  && npm run prod:build
 ---> Using cache
 ---> 938230c00b51
Step 15/26 : COPY . ./
 ---> Using cache
 ---> 1074f3207324
Step 16/26 : RUN rm -rf ./apps/statushq_pro
 ---> Using cache
 ---> fdf480359a53
Step 17/26 : RUN mix do phx.digest, release --no-tar --env=prod
 ---> Running in cf1102ab15f9
warning: found quoted keyword "test" but the quotes are not required. Note that keywords are always atoms, even when quoted, and quotes should only be used to introduce keywords with foreign characters in them
  /build/apps/statushq/mix.exs:78

warning: not passing the :switches or :strict option to OptionParser is deprecated
  (elixir) lib/option_parser.ex:562: OptionParser.build_config/1
  (elixir) lib/option_parser.ex:197: OptionParser.parse/2
  lib/mix/tasks/phx.digest.ex:39: Mix.Tasks.Phx.Digest.run/1
  (mix) lib/mix/task.ex:316: Mix.Task.run_task/3
  (mix) lib/mix/project.ex:348: Mix.Project.in_project/4

==> statushq
Check your digested files at "priv/static"
==> statushq
Compiling 82 files (.ex)
warning: function init/1 required by behaviour GenServer is not implemented (in module Statushq.Api).

We will inject a default implementation for now:

    def init(args) do
      {:ok, args}
    end

You can copy the implementation above or define your own that converts the arguments given to GenServer.start_link/3 to the server state.

  lib/statushq/api.ex:1

warning: System.stacktrace/0 outside of rescue/catch clauses is deprecated. If you want to support only Elixir v1.7+, you must access __STACKTRACE__ inside a rescue/catch. If you want to support earlier Elixir versions, move System.stacktrace/0 inside a rescue/catch
  lib/statushq_web/services/monitoring.ex:44

warning: "not expr1 in expr2" is deprecated. Instead use "expr1 not in expr2" if you require Elixir v1.5+, or "not(expr1 in expr2)" if you have to support earlier Elixir versions
  lib/statushq_web/controllers/admin/user_status_page_controller.ex:22

warning: unused alias Config
  lib/statushq_web/emails/coherence/user_email.ex:8

warning: "not expr1 in expr2" is deprecated. Instead use "expr1 not in expr2" if you require Elixir v1.5+, or "not(expr1 in expr2)" if you have to support earlier Elixir versions
  lib/statushq_web/controllers/admin/status_page_controller.ex:13

warning: variable "pro?" does not exist and is being expanded to "pro?()", please use parentheses to remove the ambiguity or change the variable name
  lib/with_pro.ex:9

warning: Ecto.DateTime is deprecated, plese use :naive_datetime instead
  lib/ecto/schema.ex:1872: Ecto.Schema.check_type!/3
  lib/ecto/schema.ex:1507: Ecto.Schema.__field__/4
  lib/statushq/accounts/user.ex:13: (module)
  (elixir) src/elixir_compiler.erl:71: :elixir_compiler.dispatch/4
  (elixir) src/elixir_compiler.erl:68: :elixir_compiler.compile/3

warning: Ecto.DateTime is deprecated, plese use :naive_datetime instead
  lib/ecto/schema.ex:1872: Ecto.Schema.check_type!/3
  lib/ecto/schema.ex:1507: Ecto.Schema.__field__/4
  lib/statushq/accounts/user.ex:13: (module)
  (elixir) src/elixir_compiler.erl:71: :elixir_compiler.dispatch/4
  (elixir) src/elixir_compiler.erl:68: :elixir_compiler.compile/3

warning: Ecto.DateTime is deprecated, plese use :naive_datetime instead
  lib/ecto/schema.ex:1872: Ecto.Schema.check_type!/3
  lib/ecto/schema.ex:1507: Ecto.Schema.__field__/4
  lib/statushq/accounts/user.ex:13: (module)
  (elixir) src/elixir_compiler.erl:71: :elixir_compiler.dispatch/4
  (elixir) src/elixir_compiler.erl:68: :elixir_compiler.compile/3

warning: Ecto.DateTime is deprecated, plese use :naive_datetime instead
  lib/ecto/schema.ex:1872: Ecto.Schema.check_type!/3
  lib/ecto/schema.ex:1507: Ecto.Schema.__field__/4
  lib/statushq/accounts/user.ex:13: (module)
  (elixir) src/elixir_compiler.erl:71: :elixir_compiler.dispatch/4
  (elixir) src/elixir_compiler.erl:68: :elixir_compiler.compile/3

warning: variable "acc" is unused
  lib/statushq/spm.ex:213

warning: variable "conn" is unused
  lib/statushq_web/router.ex:9

warning: variable "kind" is unused
  lib/statushq_web/router.ex:9

warning: variable "reason" is unused
  lib/statushq_web/router.ex:9

warning: variable "stacktrace" is unused
  lib/statushq_web/router.ex:9

warning: this clause cannot match because a previous clause at line 47 always matches
  lib/statushq/spm.ex:49

warning: this clause cannot match because a previous clause at line 1 always matches
  lib/statushq_web/router.ex:1

warning: variable "params" is unused
  lib/statushq_web/controllers/coherence/registration_controller.ex:42

warning: variable "params" is unused
  lib/statushq_web/controllers/coherence/password_controller.ex:35

warning: variable "params" is unused
  lib/statushq_web/controllers/coherence/password_controller.ex:126

warning: function Rollbax.report/4 is undefined (module Rollbax is not available)
Found at 2 locations:
  lib/statushq_web/services/monitoring.ex:44
  lib/statushq_web/services/monitoring.ex:49

warning: function StatushqProWeb.Services.Accounts.delete_account/1 is undefined (module StatushqProWeb.Services.Accounts is not available)
  lib/statushq_web/controllers/coherence/registration_controller.ex:140

Generated statushq app
** (Mix.Releases.Config.LoadError) could not load release config rel/config.exs
    ** (UndefinedFunctionError) function Mix.Config.Agent.start_link/0 is undefined (module Mix.Config.Agent is not available)
    Mix.Config.Agent.start_link()
    (stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
    (stdlib) erl_eval.erl:449: :erl_eval.expr/5
    (stdlib) erl_eval.erl:126: :erl_eval.exprs/5
    (elixir) lib/code.ex:232: Code.eval_string/3
    (distillery) lib/mix/lib/releases/config/config.ex:281: Mix.Releases.Config.read_string!/1
    (distillery) lib/mix/lib/releases/config/config.ex:302: Mix.Releases.Config.read!/1
The command '/bin/sh -c mix do phx.digest, release --no-tar --env=prod' returned a non-zero code: 1

Error on 13/25 docker build

First issue, so hopefully it's not too crazy!

I'm trying to follow your docker guide, but It crashes out on step 13/25. Do you have any public images I could pull instead?

For reporting, here's the error trace:

Step 13/25 : RUN mkdir -p apps/statushq/priv/static  && yarn  && npm run deploy  && npm run deploy:admin
 ---> Running in 68cc29d771c6
yarn install v1.3.2
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error /build/node_modules/node-sass: Command failed.
Exit code: 1
Command: node scripts/build.js
Arguments:
Directory: /build/node_modules/node-sass
Output:
Building: /usr/bin/node /build/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [ '/usr/bin/node',
gyp verb cli   '/build/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library=' ]
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/build/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/build/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/build/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /build/node_modules/which/which.js:89:16
gyp verb `which` failed     at /build/node_modules/isexe/index.js:44:5
gyp verb `which` failed     at /build/node_modules/isexe/access.js:8:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:135:15)
gyp verb `which` failed  python2 { Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/build/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/build/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/build/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /build/node_modules/which/which.js:89:16
gyp verb `which` failed     at /build/node_modules/isexe/index.js:44:5
gyp verb `which` failed     at /build/node_modules/isexe/access.js:8:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:135:15) code: 'ENOENT' }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` failed Error: not found: python
gyp verb `which` failed     at getNotFoundError (/build/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/build/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/build/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /build/node_modules/which/which.js:89:16
gyp verb `which` failed     at /build/node_modules/isexe/index.js:44:5
gyp verb `which` failed     at /build/node_modules/isexe/access.js:8:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:135:15)
gyp verb `which` failed  python { Error: not found: python
gyp verb `which` failed     at getNotFoundError (/build/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/build/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/build/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /build/node_modules/which/which.js:89:16
gyp verb `which` failed     at /build/node_modules/isexe/index.js:44:5
gyp verb `which` failed     at /build/node_modules/isexe/access.js:8:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:135:15) code: 'ENOENT' }
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (/build/node_modules/node-gyp/lib/configure.js:454:19)
gyp ERR! stack     at PythonFinder.<anonymous> (/build/node_modules/node-gyp/lib/configure.js:368:16)
gyp ERR! stack     at F (/build/node_modules/which/which.js:68:16)
gyp ERR! stack     at E (/build/node_modules/which/which.js:80:29)
gyp ERR! stack     at /build/node_modules/which/which.js:89:16
gyp ERR! stack     at /build/node_modules/isexe/index.js:44:5
gyp ERR! stack     at /build/node_modules/isexe/access.js:8:5
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:135:15)
gyp ERR! System Linux 4.9.87-linuxkit-aufs
gyp ERR! command "/usr/bin/node" "/build/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /build/node_modules/node-sass
gyp ERR! node -v v8.9.3
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok
Build failed with error code: 1
ERROR: Service 'statushq' failed to build: The command '/bin/sh -c mkdir -p apps/statushq/priv/static  && yarn  && npm run deploy  && npm run deploy:admin' returned a non-zero code: 1

Docker build could not load release config

Hi guys,
as I had proceeded with self hosted option, I found one issue after ./docker/build.sh. I have setup my .env to match my DB. Then whole build went nice just till I saw:

Generated statushq app ** (Mix.Releases.Config.LoadError) could not load release config rel/config.exs ** (UndefinedFunctionError) function Mix.Config.Agent.start_link/0 is undefined (module Mix.Config.Agent is not available) Mix.Config.Agent.start_link()

Please can you update me what is the issue with missing release config?

Issues when setting up with Nginx

URL_HOST=foo.bar.io
URL_SCHEMA=https
URL_PORT=5000

Since nginx is running on 443 and 80 and terminates TLS, I can't specify URL_PORT as 80 or 443. If it keep it as 5000, the requests are being redirected to foo.bar.io:8000

Is there a way to separate out these two?

Request blueprint

curl 'https://foo.bar.io:5000/css/app-de70816a7801f60b72d22bf17d5bb077.css?vsn=d' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:64.0) Gecko/20100101 Firefox/64.0' -H 'Accept: text/css,*/*;q=0.1' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Referer: https://foo.bar.io/' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Cookie: sessionid=m4662ri903slnxfkkmmx8kg1mpyga5a9; _statushq_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb1hPZmlvbEVjWFdySG9aUEFsd0dHQT09.wzsAUCnvbQvR8Bxd0YiXu4fc7HaByOr64KuoPqGpq1I'

Docker start not working

Git clone the project and under the root directory run:

./docker/setup_env.sh will generate your .env file, configure it as it fits you.
./docker/start.sh to start the server, then you should be able to access it under http://localhost:5000/admin, sign in with the >default user provided in the terminal and change its password and email.

This instructions fails.

statushq_1 | DB_NAME: statushq, true
statushq_1 | psql: could not translate host name "postgres" to address: Name does not resolve
statushq_1 | Waiting for Postgres...
docker_postgres_1 exited with code 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.