Table of Contents
Website and other web tool details
Protohaven's Website
Domain Registration
- Domain Registrar: namecheap.com
- Username: protohaven
- Account Email: amber@protohaven.org
- Credit Card On File Expires: January 2025
Protohaven.org
- Registration Valid Through: August 14, 2023 (Autorenewed)
- DNS servers are the Namecheap Webhosting DNS servers so it’s managed via cpanel
- This is managed in cpanel zones config.
- The MX (Mail Exchanger) DNS records are configured to point to Google Work.
Protohaven.com
- Registration Valid Through: August 8, 2023 (Autorenewed)
- DNS servers are the Namecheap Basic DNS servers so it’s managed in the namecheap account area. It’s configured to redirect to protohaven.org.
TLS/SSL Certificates
TLS (Transport Layer Security) and SSL (Secure Sockets Layer) both extensively mean the same thing, technically it’s all TLS and SSL has been deprecated but many ppl still say SSL.
Current Certificate Expires: Sunday, October 29, 2023 at 7:59:59 PM
Credit for Renewal good for 5 years, it’s not clear on the exact end date other than there are 1824 days remaining on 9/29/2022
protohaven.org / www.protohaven.org TLS certificate comes from the namecheap SSL hosting section. The current TLS purchase is good for 5 years. However a specific certificate is only good for 1 year and each year a new CSR will need to be generated and a certificate will need to be minted and installed into the SSL/TLS section of cpanel
Certificate Refresh Directions
Note: For two years in a row, Namecheap has failed the auto CSR signing process with an internal error. This has required reaching out to support to do the verification manually. The process takes up to 1-2 business days on the Certificate Authority Sectigo end; requirements can be checked here: https://www.namecheap.com/support/knowledgebase/article.aspx/9502/68/what-do-i-need-to-validate-an-ov-certificate/. After the validation is finished and SSL is reissued, a follow-up email ticket gets sent to purchasing@protohaven.org
- Login to the accounts area at namecheap.com
- Click Hosting List then Go To Cpanel for protohaven.org
- In the Security section of the das hboard click SSL/TLS
- Click Generate, view, or delete SSL certificate signing requests.
- Complete the CSR Form
- Add “protohaven.org” and “www.protohaven.org” in the Domains text input, separated by a newline
- Pittsburgh, PA, US for city, state, country
- Protohaven for company
- system@protohaven.org for email address
- Do not set a passphrase
- Click “Generate” to generate the CSR
- Open the accounts area at namecheap.com in a new tab
- Click on the SSL Certificates section
- Next to the protohaven.org entry click the down arrow and reissue.
- Copy and paste the encoded contents of the CSR (including hyphenated header and footer) into the textarea where it says to enter the csr. Click Next.
- Ensure you have group membership in webmaster@protohaven.org (via admin.google.com) and set the DCV method to “receive an email” with webmaster@ as the target. Click Next.
- Fill in representative information, click Next.
- Review and click Submit.
- After the new certificates are minted download and extract the zip file.
- Go back to the other tab where the cpanel TLS pages are and go to: Generate, view, upload, or delete SSL certificates. (Many of these pages have a “go back” link at the bottom if you’re feeling lost.)
- In the section where it says upload new certificate choose to upload the protohaven_org.crt file and click upload certificate.
- Once uploaded you’ll see a new entry under “Certificates on Server” with an expiry date 1 year from now. Click Install.
- Paste the contents of protohaven_org-ca_bundle file into the textarea for ca-bundle if it isn't already populated.
- It may take 5 minutes before the new cert is live on the server, check the server’s certificate and verify that the new expiry date is shown. (Click on the lock icon by the protohaven.org domain on the web browser and view the certificate.)
Web Hosting
- Hosting is also at Namecheap
- Plan: Shared Hosting - Value
- Renews annually, next renewal Aug 25, 2023
- Managed with cpanel in the accounts section of namecheap.
- Hosting provides 20GB disk storage, unmetered transfer, 3 domains, US Datacenter.
- Wordpress Installation managed in cpanel.
Wordpress
Wordpress its the CMS for the Protohaven website. It is managed via softalicious, link to deployment.
Database Backups
There is a script in the ~/bin directory on the webhost that runs via cron in cpanel twice a day. it does a mysql dump and stores the files in ~/backups_mysql. I would put more in here but something in the code is forbidden.
Dokuwiki
Dokuwiki is installed via Softalicious and is automatically updated, it's softalicious listing is here.
Editing
Check out the syntax page for info on how to edit the wiki.
Non Bundled Plugins
We don't want to have extension proliferation and want to keep this list to a minimum of necessary ones.
- Move Plugin - Allows for moving and renaming of pages, also fixes links on other pages
- nspages - Allows for automatically generaged lists of every page in a namespace.
- oauth + oauthgeneric - Allows for use to authenticate users with Neon One
oauth generic customizations
I had to make a one line change in the module to make it work with the neon one api authentication. The patch and the description of the patch is on GitHub
Booked Scheduler
Is our equipment reservation system at reserve.protohaven.org.
Booked scheduler is a hosted service that we have an annual subscription for.
Billing
Nick from Twinkle Toes Softare will email an invoice when our subscription is due which is Mid December each year.
Support
Support can be had by emailing nick@twinkletoessoftware.com if there is something wrong with the software.
Also check out the documentation at https://www.bookedscheduler.com/help/
Custom Oauth
We paid the developer of Booked to adapt his oauth to work with Neon CRM. It uses neon CRM as the Oauth Identity Provider. When a user tries to login it will redirect them to Neon and be redirected back to booked. If it's their first time logging in booked will make an api call to neon and retrieve their name and email.
Administrators
There are two places to set up Administrators. One is to add users to the Administrator Group. the second is to go into the site settings and set up email addresses of administrators in the appropriate text box. This will allow list that login with the email to be an admin.
We should have core admins listed there, then additional admins like people making reservations on behalf of classes etc in the Admin group.
Configuration Admins:
- Jeff Bearer
- Mihir Alve
Admin Group Members:
- Jeff Bearer
- Mihir Alve
- Amber Epps
- Shannon Bearer
- Marvin Torre
- Taylor Grieshober
Integrations with Other Systems
Set Equipment Status from Airtable
Any time the status of equipment is changed in airtable with the Set Tool Status Form it will trigger an automation in Airtable that will set the reservable status in Booked to match. The source code is managed in our Github.
The booked credentials that Airtable uses to auth with booked is the airtableapi user.
Member clearance Sync
This is still on the backlog https://app.asana.com/0/1200386169577785/1203803204755526
Neon CRM
App Users login here: http://neonsso.com/ Constiuient user login here: https://protohaven.app.neoncrm.com/login
Testing users:
- Test Member (has active membership) https://protohaven.app.neoncrm.com/admin/accounts/1797
- Testing Nonmember (membership is expired) https://protohaven.app.neoncrm.com/admin/accounts/1727
API Keys
Below are various API keys that are setup so that other programs are able to interact with Neon.
User Account | Beginning of API Key | Permissions | Used For |
---|---|---|---|
Jeff Bearer | 0fb | Admin | Just for reference encase it's found somewhere. |
API Key - Dokuwiki | dc9 | Members Read | Dokuwiki - Oauth Generic Plugin |
API Key - Booked | faf | Members Read | Booked Scheduler - Oauth Plugin |
API Key - Airtable | 98b | Admin |
Oauth Keys
The site has a single oauth key that can be found by Admins here.
Airtable
Airtable is an easy to use web based database that we use to help build tools and apps needed to run Protohaven's data systems. It's often the middle man in most of the tools that we use.
There is 1 paid account for Airtable and it's admin@protohaven.org The password is available from Jeff and others.
There is one Workspace “Protohaven” and there are several “bases”
Bases
Short for database I guess.
Tools & Equipment
Tools & Equipment is the main base, it handles the master equipment list, tool reports, and recurring tasks. It leveraverages shared links of views and forms so that people who don't have accounts can use the system.
It also uses automations inside the airtable base as well as zapier to do actions.
Tables
- Tool Records
- Tool Reports
- Recurring Tasks
- Occasional Tasks
- Clearances (Work TBD)
- Purchases (Legacy)
Shared Forms
Automations
Update Booked Status
In Airtable under the Tools & Equipment base there is an automation that will update the booked status for equipment if the status in airtable goes red, or worse.
The credentials used are the booked “airtableApiUser” in booked.
The script is published to our github here: https://github.com/protohaven/systems-integration/blob/main/airtable-automations/UpdateBookedStatus.js
Neon Data
Neon Data is a base that receives the synched data from Neon and builds apps upon that data.
Tables
- Members
- Classes
- Class Attendees
- Member Sign In (Work TBD)
- Guest Sign In (Work TBD)
- Shop Tech Time Off
- Square Storage Orders
- Storage Types
Shared Forms
Automations
Sync Account, Event and Registration Data from Neon
In Airtable under the Neon Data base there is an automation that syncs data from Neon.
The credentials used are the neon API Key - Airtable key listed above.
The script is published to our github here: https://github.com/protohaven/systems-integration/blob/main/airtable-automations/neon-integration/
Github
We've use the Protohaven Github account to control the revision history of source code used to run the orginization or to share to the public.
Any code that creates integrations between systems or customizations of systems should have a directory published to the systems-integration repository.
- email: workshop@protohaven.org
- backup email: devin@protohaven.org
- Jeff has the password, we need to figure out how to handle protohaven passwords better.
Zapier
Zapier is a 3rd party service that interacts across many 3rd party API's and makes it easy to link services together. We use Zapier to link, Asana, Discord, Google Docs, Airtable, NeonOne, Square.
It's a shared account for admin@protohaven.org password is known by Amber and Jeff.