https://github.com/jessedoyle/port
Simple page authorization for static webpages
https://github.com/jessedoyle/port
Last synced: 4 months ago
JSON representation
Simple page authorization for static webpages
- Host: GitHub
- URL: https://github.com/jessedoyle/port
- Owner: jessedoyle
- License: mit
- Created: 2015-12-14T23:28:07.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-03-09T01:32:54.000Z (about 3 years ago)
- Last Synced: 2025-06-20T15:18:17.217Z (12 months ago)
- Language: Ruby
- Size: 162 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Port
[](https://travis-ci.org/jessedoyle/port)
Port is a simple Rails application to take static webpages (`html`, `xml`) and bolt-on some basic authorization.
Port provides access to a dashboard that allows an administrator to set particular pages as public or private.
Any pages that have private visibility require a valid `access code` to be entered before access to the contents of the page is granted. The `access code` is stored in the user's session, so once a valid code is supplied, a user may browse all private pages throughout the session.
Note: It is a good idea to make the main `index.html` file that maps to the route `/` to be public as many controller methods will redirect to this page as a landing page.
Another Note: Any files that are with the `static/assets` directory are always publicly visible. This way one does not have to maintain the visibility of all asset files individually. Be warned.
### Setup
A new Port deployment will display a 404 page at the root url (i.e. `http://localhost:3000/`). This is because there are no `html` pages in the `app/views/static` directory. By default, Port will setup the root url to the `app/views/static/index.html` file.
Here's a few steps that will setup a new deployment:
1. Execute `bundle install` to install dependencies.
2. Migrate the database: `rake db:migrate`.
3. Create an admin account: `rake admin:create[email,password]`.
4. Copy your static `html` files to the `app/views/static` directory.
5. Visit `/dashboard` and login using the newly created admin account to update the pages in the database, or call `rake pages:scan`. By default, the main `index.html` file will be publicly viewable.
6. Presto! You should be able to reach any publicly viewable pages from their traditional urls.
### Dashboard
An admin dashboard may be reached at the `/dashboard` url. Once an administrator has logged in, they may set the visibility of pages, or create/delete access codes.
The directory containing the static templates is scanned and updated upon successful login to the admin dashboard. Therefore, one should visit the admin dashboard after adding templates to the static directory.
A `rake pages:scan` task is available to update the pages in the database to match the filesystem without visiting the admin dashboard.
A `rake admin:create` task may be used to generate a new administrator account as such:
```bash
rake admin:create[test@test.com,12345678,12345678]
```
where the options provided are the corresponding `email`, `password` and `password_confirmation` attributes.
### Configuration
By default, any files ending in `.html` or `.xml` inside the `app/views/static` directory will be considered static templates.
The static directory may be changed by setting the `config.x.static_root` key to the requested path in the appropriate rails environment file (likely `production.rb`).
A contact email address is supplied to users requesting access to private pages. This specifed by setting the `PORT_CONTACT_EMAIL` evironment variable, or it may be directly set via the `config.x.port_contact_email` key in `application.rb`.
### License
Port is licensed under the MIT License. Please see LICENSE for details.