1.5 KiB
1.5 KiB
CGI Example Project
The goal of this project is to give a working example of a basic Gemini CGI application. User identities are driven by TLS Client Certificates. This project will serve as a reference for CGI authors and be explained in detail in an instructional video.
Features
- (DONE) New TLS certificates automatically create a new user account
- (DONE) Users can set data on their own account (a name field for example)
- (DONE) Users can add additional certificates to the same account by using a special code
Files
index.gmi
- a python script using thegmi
extension. It is an executable file to enable CGI use. Your server must be configured for CGI for this to work. Depending on your server software you may need to house this project within a specialcgi-bin
directory.
Several sub-directories exist with their own index.gmi files to perform specific app actions.
db.py
- handles database connection and querieshelpers.py
- provides some Gemini header operations and environment variable fetchingcreate_schema.sql
- holds the database schema for sqlite used in this app.
Create database with:
sqlite3 db/cgi-example.sqlite3 < create_schema.sql
Then give write permission to the both the database and the containing directory (db
) to the user that your Gemini server runs as. It is important that the containing folder write permissions are in place or you will see 50
errors returned when trying to write to the database.