Giter Site home page Giter Site logo

server-status-project / server-status Goto Github PK

View Code? Open in Web Editor NEW
387.0 22.0 84.0 4.27 MB

Simple, modern looking server status page with administration and some nice features, that can run even on shared webhosting

Home Page: https://demo.status.sajdl.com/

License: Apache License 2.0

PHP 87.76% CSS 4.76% JavaScript 6.31% HTML 0.71% Dockerfile 0.45%
statuspage status-dashboard status-page uptime uptime-monitor uptime-robot uptimerobot uptime-check php shared-webhosting

server-status's Introduction

Server Status (Official)

This is the official Server Status Project.

License Current release Beta-Build Stability Build

Very simple server status page written in PHP that can run on PHP 5.5+ - even on shared webhosting even without shell access. Because why waste your money on another server (or host on a server that you might want to do maintenance on), when you can use cheap webhosting? And as a cherry on top - it works even without javascript!

How do I install this thing?

Simply put the files on your server and access it from your browser. There will be a simple install dialog waiting for you. If you prefer you can install manually by filling the info in config.php.template and renaming it to config.php. As this does not run installation scripts you need to head to your install directory and run create-server-config.php and then delete it. If you don't want to allow php to access your files or you have permission issues, use the following instructions.

FOR IIS:

// Rename IISWebConfig to web.config

FOR Apache and Nginx

// Rename ApacheHtaccess to .htaccess

You can find more info on our wiki page

Contributing

Anyone is welcome to make pull request with new features or security patches / bug fixes.

You may create a pull request anytime or you can join our discord here(https://discord.gg/Wgxnxz4)

Translations

Any help with translations is much welcome! You can join us at https://poeditor.com/join/project/37SpmJtyOm. You can even add your own language. Just let me know when you're done and I'm going to include the language in the next release.

List of contributors

Does it actually run somewhere?

Yes it does! https://status.trucksbook.eu/ (Trucksbook) https://status.theskyfallen.com (The Skyfallen Productions Company) https://status.ecidsf.com/ (ECIDSF) https://status.otuts.eu/ (OTUTS) And many more!

FAQ

My Translations are not working. What to do?

  1. Open your shell
  2. Type this command 'sudo nano /etc/locale.gen'
  3. Uncomment all the languages you want.
  4. Save with 'Ctrl+X'
  5. Run 'sudo locale-gen'
  6. Restart apache 'sudo service apache2 restart'
  7. Enjoy!

Do you have a demo page?

Yes we have! Head over to https://demo.status.sajdl.com/admin and try the admin interface for yourself. Login details:

email: [email protected]
password: Ss123456

Please note that changes are reverted every hour.

I noticed there is a new release. How do I update?

Updating server status is fairly straightforward. Download your config.php from the server. Delete all files. Upload the new release with config.php you downloaded earlier. You need to manually run install scripts. For that head to your domain and run create-server-config.php deleting it afterwards. If you don't want to allow php to access your files or you have permission issues, use the following instructions.

FOR IIS:

// Rename IISWebConfig to web.config

FOR Apache and Nginx

// Rename ApacheHtaccess to .htaccess

Is there any way to do this automatically?

We are working on it but it is not yet included. Stay tuned!

Can I somehow pull status info from Server status programatically?

Yes you can! As of 9f7e15f we added API to pull status data... And more APIs are coming! Results are encoded in JSON format which should be pretty easy to use in any common programming language.

Why does this project exist?

It was written as a school project where we had to create a website. I went with this because I found the lack of good looking, easy to install and use status page rather weird. Therefore my goal (as stated above) was to create a simplistic status page that could run almost anywhere. The code is not the nicest or cleanest and it definitely doesn't have that many features, but hey, it works!

Feature Request

You can write an issue and I will try to take a look when I get some time OR you can actually make a fork as the code it GNU licensed. Pull requests are most welcome!


If you like this project, buy us a coffee!

Buy Me A Coffee

server-status's People

Contributors

adaniieel avatar jhuesser avatar kim3-sudo avatar nothing4you avatar pryx avatar steffen-mlr avatar thnilsen avatar yigitkeremoktay 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

server-status's Issues

cancellation service generates error

There is another problem in your demo, when you generate a service and then you want to delete it brings back an error page.
Furthermore, there is no possibility to order the service by priority

Edit Published Incidents

Can we please have the ability for incidents that have been published to be edited?
This is useful for when things need to be changed.
Cheers!

Make the location of the Privacy URL changeable

This function is useful for people who have to write a Privacy Policy for all the other things (like me).
Client/Users prefer to have everything in one place instead of reading 2 different policy's.

Refactor incident getting

Right now there is some code duplicated, would be nice if it wouldn't - could probably use the code in API to get the incidents for rendering too.

Cannot add new users

When i fill out the form for a new user and click submit, it doesn't create the user in the database.

GUI Popup Modal for incidents

Feature request to allow for a popup modal showing an incident linked to a service.
Alternatively, a JS tab of sorts that shows when clicked on the service.

Dutch Translation

I've just finished the Dutch translation for this repo.
I'll try to translate it to another language as well, or at least a part of it.

Change color

How can I change the background color of this button?

schermata a 2018-07-13 00-25-43

How to fix lenguage

Hello guys,if I want to correct a few words in my (already existing) language, how can I do? I noticed that editing server-server-status.po status.mo files generates errors
how can this be done?

Create API

We should create simple API, that would return incidents (probably taking limit and future parameters) - useful for embedding on websites, also we should be able to return list services and their statuses.

Add webhooks and webhook listeners

We should be able to trigger a webhook when we add a new status or add a status when our webhook is triggered from another service such as uptime monitor.

Add ability to customize config from web

It might be useful to move some config stuff to database so it is editable. Also this way more configuration can be added without the hassle of parsing the config file and writing it again. Some basic stuff will have to remain there, but it should really be the basics like database connection.

In addition to current settings it would be nice to add setting for number of shown incidents, now it's hardcoded to 5.

This would also mean the need to revisit settings gui - suggestions welcome.

Robots file

Should add robots file to avoid indexing administration...

Add custom code

It should be possible to add custom code such as analytics - you might want to know how many people are accessing your status page as that might indicate that there is some kind of problem you don't know about.

Cannot move to index page after installation

Hello Pryx. Thanks for your script.

I have uploaded your script on on CentOS 7 box with PHP 7 on it. I created the db first and launched the install. it went through without errors but the same installation page gets loaded everytime. i verified in the DB, there are tables which have been created.
I suppose the table will be created by the xxx.sql file.
Can you advise on the way forward plz

Delete users

We were testing with the site and created some test users but we cannot delete the users anymore. Would be nice if that was possible in the settings

Administration redesign

Will have to do a bit of an redesign to prepare for more options - probably some kind of vertical menu design like AdminLTE. If any of you have requests or ideas what do do better, please let me know.

Mailing list

It should be possible to register for status updates sent via email, so users don't have to always check the status page. Should be fairly straightforward, unless there are some new requirements introduced by General Data Protection Regulation (GDPR) I don't know of.

Translations

Modify code that it can be translated using gettext & Zanata. Some infrastructure to support localized posts should be also added. It should also be possible to change default language.

Edit user details

Another nice feature to have would be to edit Name, Surname and Username... Should be easy enough πŸ™‚

Http Error 500

Hello,

I've successfully downloaded and uploaded your status page source.
Sadly enough, whenever I run the installer I get the error
"This page isn’t working
status.otuts.eu is currently unable to handle this request.
HTTP ERROR 500 "
Refreshing the page brings me back to the install page.

I tried removing and using another new database and reupload the filles, but the error is still there.
I'm using a paid webhosting with PHP/MySQL.

Update system

Right now there is no way to know there is an update except to look at Github. Let's make that better - we should at least show that there is an update and maybe implement "One click update" script later. Maybe there is a lib for that even.

Switch password hashing algorithm

When I implemented the password hashing and verification algorithm, I used older method of doing that. I don't know whether any of the current users use PHP < 5.5 but I haven't seen anything below 5.5 for a while that wasn't up-gradable to 5.5 or higher. Let me know if you need me to support PHP < 5.5 or if I can switch to password_hash method.

Multilanguage incidents

We support multiple languages now. It should be possible to write incidents in another langs too. Or at least offer translation with Yandex API.

Minimal requirements check

We should check (ideally both before install and in administration every time) for minimal requirements - #18 will surely need CURL to work and we should check if mail() function exists and is working. Maybe send testing email with "Welcome" information right after install? I don't think server memory or max script run time will be problem (yet). Also maybe checking write permission before trying to write config file could be nice. If anyone has more ideas what to check, let me know.

custom types

How about custom incident types and styles for each one?

Specific timeframe displayed on frontpage

It would be nice to have a feature to select a timeframe or number of incidents displayed on the page.
Show only incidents from the past 2 months or 1 year. But still be able to see the incidents in the system but not for the public feed.

Fix bugs uncovered by Codacy

There are lot of minor things that codacy uncovered but also some major stuff - for example it looks like you can't change email at this moment. This all should get fixed for the 1.1.0 release.

Modify viewing of incidents

I am wanting to integrate this into a website widget a bit better.
I would like to be able to click on a Service that is disrupted, and for the incident to show in a popup modal.
Any suggestions?

Administration - tables

Currently I've resorted to setting minimal width for body - this is not optimal. Bootstrap style responsive tables solution should be used.

Change title of main banner

The title of the banner on every page now is Service status. We would like to change that to something else. Can that be possible in the settings?

Incident templates

Nice feature to have would be incident tempates, sometimes you just wanna fill some info in and not have to think about what to write... These might actually be automatically translated in other languages.

Incident reporting form validation issue

When you enter a new incident, first select 'planned maintenance' and select start date but not end time. then change the type to major outage. This will hide the time options but validation error for end time still appear on submit.

You will have to re-select 'planned maintenance' and then empty start time and then re-select major outage then submit.

Please undo start time / end time options on change of incident type.

Move to templating system

It would be really great to have a templating system, so we can change HTML structure independently of PHP code and vice versa. Also would be really great for people that want to do their own layout.

Fix Admin Login Bug

Hi. I don't know if it's my server of the app but I get the followi8ng PHP error 500 whenever I login to the administration area:

[13-May-2018 15:47:50 Europe/London] PHP Fatal error: Uncaught Error: Call to undefined method mysqli_stmt::get_result() in /home/alexand2/ServiceStatus/classes/constellation.php:129
Stack trace:
#0 /home/alexand2/ServiceStatus/classes/constellation.php(30): Constellation->get_incidents(true, 0, 6, 1526222870)
#1 /home/alexand2/ServiceStatus/index.php(41): Constellation->render_incidents(true, 0)
#2 {main}
thrown in /home/alexand2/ServiceStatus/classes/constellation.php on line 129
[13-May-2018 15:47:54 Europe/London] PHP Fatal error: Uncaught Error: Call to undefined method mysqli_stmt::get_result() in /home/alexand2/ServiceStatus/classes/constellation.php:129
Stack trace:
#0 /home/alexand2/ServiceStatus/classes/constellation.php(30): Constellation->get_incidents(true, 0, 6, 1526222874)
#1 /home/alexand2/ServiceStatus/index.php(41): Constellation->render_incidents(true, 0)
#2 {main}
thrown in /home/alexand2/ServiceStatus/classes/constellation.php on line 129

https problem .htaccess lenguage

Hello I gave my contribution with the Italian language ... the problem is that on my server with https and cloudflare installed nothing works .... if I delete the .htaccess file then it works however the problem is that it does not change the language. .. how can I solve this problem?

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.