source: branches/joe-validation-comptes/install/mysql.sql @ 950

Revision 950, 15.8 KB checked in by joe, 7 years ago (diff)

Préléminaires.

Line 
1#
2# $Id: mysql.sql,v 1.39 2006/02/17 15:15:54 olivier Exp $
3# ----------------------------------------------------------------------
4# AlternC - Web Hosting System
5# Copyright (C) 2006 Le réseau Koumbit Inc.
6# http://koumbit.org/
7# Copyright (C) 2002 by the AlternC Development Team.
8# http://alternc.org/
9# ----------------------------------------------------------------------
10# Based on:
11# Valentin Lacambre's web hosting softwares: http://altern.org/
12# ----------------------------------------------------------------------
13# LICENSE
14#
15# This program is free software; you can redistribute it and/or
16# modify it under the terms of the GNU General Public License (GPL)
17# as published by the Free Software Foundation; either version 2
18# of the License, or (at your option) any later version.
19#
20# This program is distributed in the hope that it will be useful,
21# but WITHOUT ANY WARRANTY; without even the implied warranty of
22# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23# GNU General Public License for more details.
24#
25# To read the license please visit http://www.gnu.org/copyleft/gpl.html
26# ----------------------------------------------------------------------
27# Original Author of file: Benjamin Sonntag
28# Purpose of file: Create the basic structure for the mysql system db
29# ----------------------------------------------------------------------
30#
31
32######################################################################
33# STRUCTURE DES TABLES D'ALTERNC
34#
35# IMPORTANT: lorsque la structure de ces tables est modifiée, le
36# fichier upgrades/<version>.sql doit être modifié (ou créé!) pour que
37# les installations courantes soient mises à jour. <version> est ici
38# le prochain numéro de version d'AlternC. Voir upgrades/README pour
39# plus de détails.
40#########################################################################
41
42CREATE TABLE IF NOT EXISTS `slaveip` (
43`ip` VARCHAR( 15 ) NOT NULL ,
44`class` TINYINT NOT NULL ,
45PRIMARY KEY ( `ip` , `class` )
46) COMMENT = 'Allowed ip for slave dns managment';
47
48CREATE TABLE IF NOT EXISTS `slaveaccount` (
49`login` VARCHAR( 64 ) NOT NULL ,
50`pass`  VARCHAR( 64 ) NOT NULL ,
51PRIMARY KEY ( `login` )
52) COMMENT = 'Allowed account for slave dns managment';
53
54#
55# Structure de la table mail_alias
56#
57
58CREATE TABLE IF NOT EXISTS `mail_alias` (
59  `mail` varchar(255) NOT NULL default '',      # Adresse email LOCALE
60  `alias` varchar(255) NOT NULL default '',     # WRAPPER
61  PRIMARY KEY  (`mail`)
62) TYPE=MyISAM COMMENT='Mail Alias pour postfix';
63
64
65CREATE TABLE IF NOT EXISTS `mail_users` (
66  `uid` int(10) unsigned NOT NULL default '0',  # UID AlternC de l'utilisateur du mail
67  `alias` varchar(255) NOT NULL default '',     # Alias = Alias intermédiaire (voir domain)
68  `path` varchar(255) NOT NULL default '',      # Chemin vers le mail de l'utilisateur
69  `password` varchar(255) NOT NULL default '',  # Mot de passe crypté
70  PRIMARY KEY  (`alias`),
71  KEY `path` (`path`),
72  KEY `uid` (`uid`)
73) TYPE=MyISAM COMMENT='Comptes pop, wrappers, alias';
74
75
76CREATE TABLE IF NOT EXISTS `mail_domain` (
77  `mail` varchar(255) NOT NULL default '',      # Adresse email COMPLETE (login@domaine)
78  `alias` text NOT NULL,                        # Alias intermédiaire (login_domaine) pour référence dans users
79  `uid` int(10) unsigned NOT NULL default '0',  # Numéro de l'utilisateur (alternc)
80  `pop` tinyint(4) NOT NULL default '0',        # Est-ce un compte pop ? 
81  `type` tinyint(4) NOT NULL default '0',       # Je ne sais plus ...
82  PRIMARY KEY  (`mail`),
83  KEY `uid` (`uid`),
84  KEY `pop` (`pop`)
85) TYPE=MyISAM COMMENT='Alias en domaine pour Postfix';
86
87
88
89#
90# Structure de la table `browser`
91#
92# Cette table contient les préférences des utilisateurs dans le gestionnaire de fichiers
93
94
95CREATE TABLE IF NOT EXISTS browser (
96  uid int(10) unsigned NOT NULL default '0',            # Numéro de l'utilisateur
97  editsizex int(10) unsigned NOT NULL default '0',      # Largeur de la zone d'edition du brouteur
98  editsizey int(10) unsigned NOT NULL default '0',      # Hauteur de la zone d'edition du brouteur
99  listmode tinyint(3) unsigned NOT NULL default '0',    # Mode de listing (1 colonne, 2 colonne, 3 colonne)
100  showicons tinyint(4) NOT NULL default '0',            # Faut-il afficher les icones (1/0)
101  downfmt tinyint(4) NOT NULL default '0',              # Format de téléchargement (zip/bz2/tgz/tar.Z)
102  createfile tinyint(4) NOT NULL default '0',           # Que fait-on après création d'un fichier (1/0)
103  showtype tinyint(4) NOT NULL default '0',             # Affiche-t-on le type mime ? 
104  editor_font varchar(64) NOT NULL default '',          # Nom de la police dans l'éditeur de fichiers
105  editor_size varchar(8) NOT NULL default '',           # Taille de la police dans l'éditeur de fichiers
106  crff tinyint(4) NOT NULL default '0',                 # mémorise le dernier fichier/dossier créé (pour le bouton radio)
107  golastdir tinyint(4) NOT NULL default '0',            # Faut-il aller au dernier dossier ou au dossier racine dans le brouteur ?
108  lastdir varchar(255) NOT NULL default '',             # Dernier dossier visité.
109  PRIMARY KEY  (uid)
110) TYPE=MyISAM COMMENT='Préférences du gestionnaire de fichiers';
111
112
113#
114# Structure de la table `chgmail`
115#
116# Cette table contient les demandes de changements de mail pour les membres
117
118CREATE TABLE IF NOT EXISTS chgmail (
119  uid int(10) unsigned NOT NULL default '0',            # Numéro de l'utilisateur
120  cookie varchar(20) NOT NULL default '',               # Cookie du mail
121  ckey varchar(6) NOT NULL default '',                  # Clé de vérif
122  mail varchar(128) NOT NULL default '',                # Nouvel Email
123  ts bigint(20) unsigned NOT NULL default '0',          # Timestamp de la demande
124  PRIMARY KEY  (uid)
125) TYPE=MyISAM COMMENT='Demandes de changements de mail en cours';
126
127#
128# Structure de la table `db`
129#
130# Contient les bases mysql des membres, + login / pass en clair
131
132CREATE TABLE IF NOT EXISTS db (
133  uid int(10) unsigned NOT NULL default '0',            # Numéro de l'utilisateur
134  login varchar(16) NOT NULL default '',                # Nom d'utilisateur mysql
135  pass varchar(16) NOT NULL default '',                 # Mot de passe mysql
136  db varchar(64) NOT NULL default '',                   # Base de données concernée
137  bck_mode tinyint(3) unsigned NOT NULL default '0',    # Mode de backup (0/non 1/Daily 2/Weekly)
138  bck_history tinyint(3) unsigned NOT NULL default '0', # Nombre de backup à conserver ?
139  bck_gzip tinyint(3) unsigned NOT NULL default '0',    # Faut-il compresser les backups ?
140  bck_dir varchar(255) NOT NULL default '',             # Où stocke-t-on les backups sql ?
141  KEY uid (uid)
142) TYPE=MyISAM COMMENT='Bases MySQL des membres';
143
144#
145# Structure de la table `domaines`
146#
147# Liste des domaines hébergés
148
149CREATE TABLE IF NOT EXISTS domaines (
150  compte int(10) unsigned NOT NULL default '0',
151  domaine varchar(64) NOT NULL default '',
152  mx varchar(64) default NULL,
153  gesdns int(1) NOT NULL default '1',
154  gesmx int(1) NOT NULL default '1',
155  noerase tinyint(4) NOT NULL default '0',
156  PRIMARY KEY  (compte,domaine)
157) TYPE=MyISAM;
158
159#
160# Structure de la table `domaines_standby`
161#
162# Liste temporaire utilisée par le cron des domaines
163
164CREATE TABLE IF NOT EXISTS domaines_standby (
165  compte int(10) unsigned NOT NULL default '0',
166  domaine varchar(64) NOT NULL default '',
167  mx varchar(64) default NULL,
168  gesdns int(1) NOT NULL default '1',
169  gesmx int(1) NOT NULL default '1',
170  action int(1) NOT NULL default '0',
171  PRIMARY KEY  (compte,domaine,action)
172) TYPE=MyISAM;
173
174#
175# Structure de la table `ftpusers`
176#
177# Comptes ftp des membres
178
179CREATE TABLE IF NOT EXISTS ftpusers (
180  id int(10) unsigned NOT NULL auto_increment,
181  name varchar(64) NOT NULL default '',
182  password varchar(32) NOT NULL default '',
183  homedir varchar(128) NOT NULL default '',
184  uid int(10) unsigned NOT NULL default '0',
185  PRIMARY KEY  (id),
186  UNIQUE KEY name (name),
187  KEY homedir (homedir),
188  KEY mid (uid)
189) TYPE=MyISAM;
190
191#
192# Structure de la table `local`
193#
194# Champs utilisables par l'hébergeur pour associer des données locales aux membres.
195
196CREATE TABLE IF NOT EXISTS local (
197  uid int(10) unsigned NOT NULL default '0',
198  nom varchar(128) NOT NULL default '',
199  prenom varchar(128) NOT NULL default '',
200  PRIMARY KEY  (uid)
201) TYPE=MyISAM COMMENT='Parametres Locaux des membres';
202
203#
204# Structure de la table `membres`
205#
206# Liste des membres
207
208CREATE TABLE IF NOT EXISTS membres (
209  uid int(10) unsigned NOT NULL auto_increment,         # Numéro du membre (GID)
210  login varchar(128) NOT NULL default '',               # Nom d'utilisateur
211  pass varchar(64) NOT NULL default '',                 # Mot de passe
212  enabled tinyint(4) NOT NULL default '1',              # Le compte est-il actif ?
213  su tinyint(4) NOT NULL default '0',                   # Le compte est-il super-admin ?
214  mail varchar(128) NOT NULL default '',                # Adresse email du possesseur
215  lastaskpass bigint(20) unsigned default '0',          # Date de dernière demande du pass par mail
216  show_help tinyint(4) NOT NULL default '1',            # Faut-il afficher l'aide dans le bureau
217  lastlogin datetime NOT NULL default '0000-00-00 00:00:00',    # Date du dernier login
218  lastfail tinyint(4) NOT NULL default '0',             # Nombre d'échecs depuis le dernier login
219  lastip varchar(255) NOT NULL default '',              # Nom DNS du client au dernier login
220  creator int(10) unsigned default '0',                 # Qui a créé le compte (quel uid admin)
221  canpass tinyint(4) default '1',                       # L'utilisateur peut-il changer son pass.
222  warnlogin tinyint(4) default '0',                     # TODO L'utilisateur veut-il recevoir un mail quand on se loggue sur son compte ?
223  warnfailed tinyint(4) default '0',                    # TODO L'utilisateur veut-il recevoir un mail quand on tente de se logguer sur son compte ?
224  admlist tinyint(4) default '0',                       # Mode d'affichage de la liste des membres pour les super admins
225  type varchar(128) default 'default',
226  created datetime default NULL,
227  valid_until datetime default NULL,
228  last_renew datetime default NULL,
229  PRIMARY KEY  (uid),
230  UNIQUE KEY k_login (login)
231) TYPE=MyISAM COMMENT='Liste des membres du serveur';
232
233#
234# Structure de la table `quotas`
235#
236# Listes des quotas des membres
237
238CREATE TABLE IF NOT EXISTS quotas (
239  uid int(10) unsigned NOT NULL default '0',            # Numéro GID du membre concerné
240  name varchar(64) NOT NULL default '',                 # Nom du quota
241  total int(11) NOT NULL default '0',                   # Quota total (maximum autorisé)
242  PRIMARY KEY  (uid,name)
243) TYPE=MyISAM COMMENT='Quotas des Membres';
244
245#
246# Structure de la table `sessions`
247#
248# Sessions actives sur le bureau
249
250CREATE TABLE IF NOT EXISTS sessions (
251  sid varchar(32) NOT NULL default '',                  # Cookie de session (md5)
252  uid int(10) unsigned NOT NULL default '0',            # UID du membre concerné
253  ip int(10) unsigned NOT NULL default '0',             # Adresse IP de la connexion
254  ts timestamp(14) NOT NULL
255) TYPE=MyISAM COMMENT='Session actives sur le bureau';
256
257#
258# Structure de la table `sub_domaines`
259#
260# Sous-domaines des membres
261
262CREATE TABLE IF NOT EXISTS sub_domaines (
263  compte int(10) unsigned NOT NULL default '0',
264  domaine varchar(64) NOT NULL default '',
265  sub varchar(100) NOT NULL default '',
266  valeur varchar(255) default NULL,
267  type int(1) NOT NULL default '0',
268  PRIMARY KEY  (compte,domaine,sub)
269) TYPE=MyISAM;
270
271#
272# Structure de la table `sub_domaines_standby`
273#
274# Table temporaire des sous-domaines des membres utilisée par le cron
275
276CREATE TABLE IF NOT EXISTS sub_domaines_standby (
277  compte int(10) unsigned NOT NULL default '0',
278  domaine varchar(64) NOT NULL default '',
279  sub varchar(100) NOT NULL default '',
280  valeur varchar(255) default NULL,
281  type int(1) NOT NULL default '0',
282  action int(1) NOT NULL default '0',
283  PRIMARY KEY  (compte,domaine,sub,action)
284) TYPE=MyISAM;
285
286#
287# Structure de la table `stats2`
288#
289# Liste des jeux de stat brutes demandées sur le serveur
290
291CREATE TABLE IF NOT EXISTS stats2 (
292  id int(10) unsigned NOT NULL auto_increment,  # Numéro du jeu de stat brut
293  mid int(10) unsigned NOT NULL default '0',    # Numéro de l'utilisateur
294  hostname varchar(255) NOT NULL default '',    # Domaine concerné
295  folder varchar(255) NOT NULL default '',      # Dossier de stockage des logs
296  PRIMARY KEY  (id),
297  KEY mid (mid)
298) TYPE=MyISAM COMMENT='Statistiques apaches brutes';
299
300
301#
302# Structure de la table `defquotas`
303#
304# Quotas par défaut pour les services
305
306CREATE TABLE IF NOT EXISTS defquotas (
307  quota varchar(128),                           # Nom du quota
308  value bigint(20) unsigned default '0',        # Valeur du quota
309  type  varchar(128) default 'default',         # Type de compte associée à ce quota
310  PRIMARY KEY (quota,type)
311) TYPE=MyISAM;
312
313#
314# Quotas par defaut pour les nouveaux membres
315#
316# Ces quotas par defaut sont redefinissables dans l'interface web
317
318INSERT IGNORE INTO defquotas (quota,value) VALUES ('dom',1);
319INSERT IGNORE INTO defquotas (quota,value) VALUES ('mail',10);
320INSERT IGNORE INTO defquotas (quota,value) VALUES ('ftp',2);
321INSERT IGNORE INTO defquotas (quota,value) VALUES ('stats',1);
322INSERT IGNORE INTO defquotas (quota,value) VALUES ('mysql',1);
323
324
325#
326# Structure de la table `forbidden_domains`
327#
328# Liste des domaines explicitement interdits sur le serveur :
329
330CREATE TABLE IF NOT EXISTS forbidden_domains (
331  domain varchar(255) NOT NULL default '',
332  PRIMARY KEY  (domain)
333) TYPE=MyISAM COMMENT='forbidden domains to install';
334
335#
336# Contenu de la table `forbidden_domains`
337#
338
339# Registries :
340INSERT IGNORE INTO forbidden_domains VALUES ('afilias.net');
341INSERT IGNORE INTO forbidden_domains VALUES ('afnic.fr');
342INSERT IGNORE INTO forbidden_domains VALUES ('dns.be');
343INSERT IGNORE INTO forbidden_domains VALUES ('internic.net');
344INSERT IGNORE INTO forbidden_domains VALUES ('netsol.com');
345INSERT IGNORE INTO forbidden_domains VALUES ('nic.biz');
346INSERT IGNORE INTO forbidden_domains VALUES ('nic.cx');
347INSERT IGNORE INTO forbidden_domains VALUES ('nic.fr');
348INSERT IGNORE INTO forbidden_domains VALUES ('verisign.com');
349INSERT IGNORE INTO forbidden_domains VALUES ('octopuce.com');
350INSERT IGNORE INTO forbidden_domains VALUES ('pir.org');
351INSERT IGNORE INTO forbidden_domains VALUES ('cira.ca');
352# big isp :
353INSERT IGNORE INTO forbidden_domains VALUES ('aol.com');
354INSERT IGNORE INTO forbidden_domains VALUES ('hotmail.com');
355INSERT IGNORE INTO forbidden_domains VALUES ('microsoft.com');
356INSERT IGNORE INTO forbidden_domains VALUES ('sympatico.ca');
357INSERT IGNORE INTO forbidden_domains VALUES ('tiscali.fr');
358INSERT IGNORE INTO forbidden_domains VALUES ('voila.fr');
359INSERT IGNORE INTO forbidden_domains VALUES ('wanadoo.fr');
360INSERT IGNORE INTO forbidden_domains VALUES ('yahoo.com');
361INSERT IGNORE INTO forbidden_domains VALUES ('yahoo.fr');
362
363#
364# Structure de la table `tld`
365#
366# Liste des tld autorisés sur ce serveur :
367
368CREATE TABLE IF NOT EXISTS tld (
369  tld varchar(128) NOT NULL default '',         # lettres du tld (sans le .)
370  mode tinyint(4) NOT NULL default '0',         # Comment est-il autorisé ?
371  PRIMARY KEY  (tld),
372  KEY mode (mode)
373) TYPE=MyISAM COMMENT='TLD autorisés et comment sont-ils autorisés ? ';
374
375#
376# Contenu de la table `tld`
377#
378
379INSERT IGNORE INTO tld VALUES ('fr', 4);
380INSERT IGNORE INTO tld VALUES ('com', 1);
381INSERT IGNORE INTO tld VALUES ('org', 1);
382INSERT IGNORE INTO tld VALUES ('net', 1);
383INSERT IGNORE INTO tld VALUES ('biz', 1);
384INSERT IGNORE INTO tld VALUES ('info', 1);
385INSERT IGNORE INTO tld VALUES ('name', 1);
386INSERT IGNORE INTO tld VALUES ('ca', 1);
387INSERT IGNORE INTO tld VALUES ('it', 1);
388INSERT IGNORE INTO tld VALUES ('ws', 1);
389INSERT IGNORE INTO tld VALUES ('be', 1);
390INSERT IGNORE INTO tld VALUES ('eu.org', 4);
391INSERT IGNORE INTO tld VALUES ('cjb.net', 4);
392INSERT IGNORE INTO tld VALUES ('asso.fr', 4);
393
394--
395-- Table structure for table 'variable'
396--
397-- Taken from http://cvs.drupal.org/viewcvs/drupal/drupal/database/database.mysql?rev=1.164&view=auto
398--
399-- if comment is null, then the variable is internal and will not show
400-- up in the generic configuration panel
401CREATE TABLE IF NOT EXISTS variable (
402  name varchar(48) NOT NULL default '',
403  value longtext NOT NULL,
404  comment mediumtext NULL,
405  PRIMARY KEY  (name),
406  KEY name (name)
407) TYPE=MyISAM;
408
409-- hosting_tld: only used, for now, in bureau/admin/adm_*add.php
410INSERT IGNORE INTO `variable` (name, value, comment) VALUES ('hosting_tld', 0,
411'This is a FQDN that designates the main hostname of the service.
412
413For example, hosting_tld determines in what TLD the "free" user domain
414is created. If this is set to "example.com", a checkbox will appear in
415the user creation dialog requesting the creator if he wants to create
416the domain "username.example.com".
417
418If this is set to 0 or a "false" string, it will be ignored.');
Note: See TracBrowser for help on using the repository browser.