Git Product home page Git Product logo

plweb's Introduction

The SWI-Prolog web-site

This repository contains the software of http://www.swi-prolog.org. The (wiki) content of the website and required add-ons are stored in git submodules. These must be installed separately using the command below. To install the site from scratch locally, perform the following commands:

  1. Downloading the site

    % git clone https://github.com/SWI-Prolog/plweb.git
    % cd plweb
    % git submodule update --init
    
  2. For a full installation, install the dynamic data. The .db files must be writeable by the server process.

    annotations.db
    Comments on web pages
    tags.db
    Tags on web pages
    openid.db
    User administration
    packs.db
    Known packages
    post.db
    News posts
    reviews.db
    Pack reviews
    download
    Points to the download directory

    Install the download descriptions by running the script install-custom

  3. Create directories for logging and pack mirrors. These directories must be writeable by the server and new directories created below must have the same permissions:

    % mkdir log pack
    % chgrp www-data log pack
    % chmod g+ws log pack
    

Running the site

After installation, the website may be started locally using the commands below. After that, you have access to the same content as available from http://www.swi-prolog.org, except for the download section of the website. The default port of the site is 3040, and therefore it may be accessed on http://localhost:3040/

% swipl -l load.pl
?- server.

Running as daemon using Ubuntu upstart

A good way to run the website on a Linux server is by creating a Linux container using lxc. After installing the server, you can enable it to start at boot time by copying upstart/swi-prolog.conf to /etc/init after editing it to suit your configuration requirements. By default, the server runs as user www-data, group www-data as specified in the above configuration file.

Make sure the following components are writeable to the server process. For files, this means mode 664, group www-data. For directories, this means mode 2775, group www-data.

  • log

    Write httpd.log and pack-warnings.log

  • pack

    Mirrors known packages. Will be populated as the server is started.

  • www: subdirectories and .txt files

    Needs to make the wiki pages editable. It is also wise to do this in a git branch. From the www directory, do:

    % git checkout master
    % git pull
    % git checkout -b wiki
    % find . -type d | xargs chmod 2775
    % find . -name '*.txt' | xargs chmod 664
    % chgrp -W www-data .
    
  • *.db

Issues with the locally running site

  • There is no download section (but that can't be a big issue)

  • If you want to use the login facility to play with the interactive aspects of the site, you need to

    1. Get a reCAPTCHA key-pair from Google

    2. Run (from a started server)

      ?- set_setting(recaptcha:public_key, 'public key goes here').
      ?- set_setting(recaptcha:private_key, 'private key goes here').
      ?- save_settings.
      
    3. Run the server from a port that is accessible from the public internet.

    4. Use an OpenID provider that is not too picky for your site. In our experience, Google is less picky than Yahoo.

plweb's People

Contributors

janwielemaker avatar anniepoo avatar wouterbeek avatar triska avatar mndrix avatar eerwitt avatar

Watchers

Tadeusz Kurpiel avatar

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.