FOSSGIS/Server/Rules

From OpenStreetMap Wiki
Jump to navigation Jump to search

Projects running on FOSSGIS-Servers should consider some rules to simplify the cooperation in between the projects and make the admins job a bit easier. These rules are not carved in stone. If a rule doesn't make sense somewhere, talk about it in the Mailing list.

It is important for all projects, that they aren't just the private "playground" for some users, but can although be shared with the Community in a medium term. Therefore it is important that more people can contribute and that we help each other. This should be supported by a bit of structure.

File system

For every project there will be a folder in /osm/PROJECTNAME. All Files that belong to this project should be placed there. This also applies to log files, website etc. All Files should be allocated to the group osm and should be readable for everyone (a+r) but writable just for the User and the group (ug+w, o-w) and not everyone (ug+w, o-w).

How you organize your stuff inside your space is your/the groups own decision. But in any case there must be a file named README, that is in the top level of all files (more information below).

It is recommended to split the files according to being more or less static and changing frequently and automated. Files that only change when they are edited manually should be placed in a revision control system (such as Subversion or Git).

Another apportionment could for example look like this:

directory/file meaning
/osm/PROJEKTNAME project-directory
/osm/PROJEKTNAME/README project-description
/osm/PROJEKTNAME/PROJEKTNAME All files put out of revision control system
/osm/PROJEKTNAME/bin programs and scripts
/osm/PROJEKTNAME/log logfiles
/osm/PROJEKTNAME/web websites
/osm/PROJEKTNAME/tmp temporary files
/osm/PROJEKTNAME/download directory for download-server (see below)


If a revision control system is used as advised, files like README and directories like bin can be linked in that area.

If one is up to test something privately that is not part of a project, the suitible files should be stored at the home-directory.

Normally no files are created outside of /osm and /home, for example also not in /usr/local. Exceptions include the system awaiting special files at special places. These can be:

  • configuration of webserver
  • logfiles of webserver
  • cronjobs

In all other cases the project shouldn't depend on "extern" files, particularly it shouldn't depend on files at the home directory of single users.

Databases

On all FOSSGIS-Servers there exists a PostrgreSQL-database and if needed also a MySQL. The servers are used of diverse projects together. Projects should preferredly use the PostgreSQL, because with the PostGIS-addon it supports geographic data better than MySQL. If the software works better with MySQL, this is also OK.

If you ask the admins, they set you up accounts for the wanted database-server. With it you can configure your database on your own. They should be named after the project name. If you need several databases, they should start with the project name. Databases for tests that don't need to live any longer should start with test_.


Software

Projects should install all the required software in the exact version they need in their own directory. An exception is the standard-software that is installed by the admin via apt-get install after asking. Software that is used by different projects, for example osmosis, should be installed by every project nevertheless, because otherwise nobody can update his project without considering others.

README

Every project has to describe some things about the project in /osm/PROJECTNAME/README:

  • Where are which files?
  • What kind of database(s) is/are used?
  • How is the project available on the internet?
  • Link to continuative information such as wikipages
  • Information about the license (what open source license is used?)
  • Where is the source code?
  • What cronjobs are used?
  • What stable daemons are used?

The README is especially for admins and others on the server for getting a quick overview on what's happening there and where to intervent if something goes wrong and nobody of the project is available.


Domain

For projects that have their own website a domainname PROJECTNAME.openstreetmap.de is configured by the admins. Under this domain the project is reachable after the configuration. Because of an own domainname it might be easier to migrate the project on another computer. (Exception see "Download-Server" below)

Currently there are a few projects that are reachable under dev.openstreetmap.de/PROJECTNAME. In the medium term this is planned to change.


Download-Server

Many projects generate very big files and offer them for download (for example garmin-maps and so on). These files shouldn't be placed on the "normal" webserver of the project, but on the download-server. With it it gets easier to mirror the files (that is to copy them to other servers where users can then download the files).

To make the files available over the download-server they are stored in the directory /osm/PROJECTNAME/download. This directory is then linked from /osm/download/web/PROJECTNAME.

The download-server is reachable under download.openstreetmap.de.

Infrasctructure

Sometimes there are things that are needed for several projects, nobody wants to do twice, for example the allocation of current planet-extracts. Something like that is classified as "infrastructure project" and is treated like every other project. That is it gets a subdirectory at /osm and so on.