root/alternc/branches/larpoux-unstable/install/mysql.sql

Revision 850, 15.7 kB (checked in by olivier, 3 years ago)

Correction bug defquotas a l'install et prise en compte dans upgrade

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
42 CREATE TABLE IF NOT EXISTS `slaveip` (
43 `ip` VARCHAR( 15 ) NOT NULL ,
44 `class` TINYINT NOT NULL ,
45 PRIMARY KEY ( `ip` , `class` )
46 ) COMMENT = 'Allowed ip for slave dns managment';
47
48 CREATE TABLE IF NOT EXISTS `slaveaccount` (
49 `login` VARCHAR( 64 ) NOT NULL ,
50 `pass`  VARCHAR( 64 ) NOT NULL ,
51 PRIMARY KEY ( `login` )
52 ) COMMENT = 'Allowed account for slave dns managment';
53
54 #
55 # Structure de la table mail_alias
56 #
57
58 CREATE 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
65 CREATE 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
76 CREATE 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
95 CREATE 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
118 CREATE 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
132 CREATE 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
149 CREATE 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
164 CREATE 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
179 CREATE 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
196 CREATE 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
208 CREATE 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   PRIMARY KEY  (uid),
227   UNIQUE KEY k_login (login)
228 ) TYPE=MyISAM COMMENT='Liste des membres du serveur';
229
230 #
231 # Structure de la table `quotas`
232 #
233 # Listes des quotas des membres
234
235 CREATE TABLE IF NOT EXISTS quotas (
236   uid int(10) unsigned NOT NULL default '0',            # Numéro GID du membre concerné
237   name varchar(64) NOT NULL default '',                 # Nom du quota
238   total int(11) NOT NULL default '0',                   # Quota total (maximum autorisé)
239   PRIMARY KEY  (uid,name)
240 ) TYPE=MyISAM COMMENT='Quotas des Membres';
241
242 #
243 # Structure de la table `sessions`
244 #
245 # Sessions actives sur le bureau
246
247 CREATE TABLE IF NOT EXISTS sessions (
248   sid varchar(32) NOT NULL default '',                  # Cookie de session (md5)
249   uid int(10) unsigned NOT NULL default '0',            # UID du membre concerné
250   ip int(10) unsigned NOT NULL default '0',             # Adresse IP de la connexion
251   ts timestamp(14) NOT NULL
252 ) TYPE=MyISAM COMMENT='Session actives sur le bureau';
253
254 #
255 # Structure de la table `sub_domaines`
256 #
257 # Sous-domaines des membres
258
259 CREATE TABLE IF NOT EXISTS sub_domaines (
260   compte int(10) unsigned NOT NULL default '0',
261   domaine varchar(64) NOT NULL default '',
262   sub varchar(100) NOT NULL default '',
263   valeur varchar(255) default NULL,
264   type int(1) NOT NULL default '0',
265   PRIMARY KEY  (compte,domaine,sub)
266 ) TYPE=MyISAM;
267
268 #
269 # Structure de la table `sub_domaines_standby`
270 #
271 # Table temporaire des sous-domaines des membres utilisée par le cron
272
273 CREATE TABLE IF NOT EXISTS sub_domaines_standby (
274   compte int(10) unsigned NOT NULL default '0',
275   domaine varchar(64) NOT NULL default '',
276   sub varchar(100) NOT NULL default '',
277   valeur varchar(255) default NULL,
278   type int(1) NOT NULL default '0',
279   action int(1) NOT NULL default '0',
280   PRIMARY KEY  (compte,domaine,sub,action)
281 ) TYPE=MyISAM;
282
283 #
284 # Structure de la table `stats2`
285 #
286 # Liste des jeux de stat brutes demandées sur le serveur
287
288 CREATE TABLE IF NOT EXISTS stats2 (
289   id int(10) unsigned NOT NULL auto_increment,  # Numéro du jeu de stat brut
290   mid int(10) unsigned NOT NULL default '0',    # Numéro de l'utilisateur
291   hostname varchar(255) NOT NULL default '',    # Domaine concerné
292   folder varchar(255) NOT NULL default '',      # Dossier de stockage des logs
293   PRIMARY KEY  (id),
294   KEY mid (mid)
295 ) TYPE=MyISAM COMMENT='Statistiques apaches brutes';
296
297
298 #
299 # Structure de la table `defquotas`
300 #
301 # Quotas par défaut pour les services
302
303 CREATE TABLE IF NOT EXISTS defquotas (
304   quota varchar(128),                           # Nom du quota
305   value bigint(20) unsigned default '0',        # Valeur du quota
306   type  varchar(128) default 'default',         # Type de compte associée à ce quota
307   PRIMARY KEY (quota,type)
308 ) TYPE=MyISAM;
309
310 #
311 # Quotas par defaut pour les nouveaux membres
312 #
313 # Ces quotas par defaut sont redefinissables dans l'interface web
314
315 INSERT IGNORE INTO defquotas (quota,value) VALUES ('dom',1);
316 INSERT IGNORE INTO defquotas (quota,value) VALUES ('mail',10);
317 INSERT IGNORE INTO defquotas (quota,value) VALUES ('ftp',2);
318 INSERT IGNORE INTO defquotas (quota,value) VALUES ('stats',1);
319 INSERT IGNORE INTO defquotas (quota,value) VALUES ('mysql',1);
320
321
322 #
323 # Structure de la table `forbidden_domains`
324 #
325 # Liste des domaines explicitement interdits sur le serveur :
326
327 CREATE TABLE IF NOT EXISTS forbidden_domains (
328   domain varchar(255) NOT NULL default '',
329   PRIMARY KEY  (domain)
330 ) TYPE=MyISAM COMMENT='forbidden domains to install';
331
332 #
333 # Contenu de la table `forbidden_domains`
334 #
335
336 # Registries :
337 INSERT IGNORE INTO forbidden_domains VALUES ('afilias.net');
338 INSERT IGNORE INTO forbidden_domains VALUES ('afnic.fr');
339 INSERT IGNORE INTO forbidden_domains VALUES ('dns.be');
340 INSERT IGNORE INTO forbidden_domains VALUES ('internic.net');
341 INSERT IGNORE INTO forbidden_domains VALUES ('netsol.com');
342 INSERT IGNORE INTO forbidden_domains VALUES ('nic.biz');
343 INSERT IGNORE INTO forbidden_domains VALUES ('nic.cx');
344 INSERT IGNORE INTO forbidden_domains VALUES ('nic.fr');
345 INSERT IGNORE INTO forbidden_domains VALUES ('verisign.com');
346 INSERT IGNORE INTO forbidden_domains VALUES ('octopuce.com');
347 INSERT IGNORE INTO forbidden_domains VALUES ('pir.org');
348 INSERT IGNORE INTO forbidden_domains VALUES ('cira.ca');
349 # big isp :
350 INSERT IGNORE INTO forbidden_domains VALUES ('aol.com');
351 INSERT IGNORE INTO forbidden_domains VALUES ('hotmail.com');
352 INSERT IGNORE INTO forbidden_domains VALUES ('microsoft.com');
353 INSERT IGNORE INTO forbidden_domains VALUES ('sympatico.ca');
354 INSERT IGNORE INTO forbidden_domains VALUES ('tiscali.fr');
355 INSERT IGNORE INTO forbidden_domains VALUES ('voila.fr');
356 INSERT IGNORE INTO forbidden_domains VALUES ('wanadoo.fr');
357 INSERT IGNORE INTO forbidden_domains VALUES ('yahoo.com');
358 INSERT IGNORE INTO forbidden_domains VALUES ('yahoo.fr');
359
360 #
361 # Structure de la table `tld`
362 #
363 # Liste des tld autorisés sur ce serveur :
364
365 CREATE TABLE IF NOT EXISTS tld (
366   tld varchar(128) NOT NULL default '',         # lettres du tld (sans le .)
367   mode tinyint(4) NOT NULL default '0',         # Comment est-il autorisé ?
368   PRIMARY KEY  (tld),
369   KEY mode (mode)
370 ) TYPE=MyISAM COMMENT='TLD autorisés et comment sont-ils autorisés ? ';
371
372 #
373 # Contenu de la table `tld`
374 #
375
376 INSERT IGNORE INTO tld VALUES ('fr', 4);
377 INSERT IGNORE INTO tld VALUES ('com', 1);
378 INSERT IGNORE INTO tld VALUES ('org', 1);
379 INSERT IGNORE INTO tld VALUES ('net', 1);
380 INSERT IGNORE INTO tld VALUES ('biz', 1);
381 INSERT IGNORE INTO tld VALUES ('info', 1);
382 INSERT IGNORE INTO tld VALUES ('name', 1);
383 INSERT IGNORE INTO tld VALUES ('ca', 1);
384 INSERT IGNORE INTO tld VALUES ('it', 1);
385 INSERT IGNORE INTO tld VALUES ('ws', 1);
386 INSERT IGNORE INTO tld VALUES ('be', 1);
387 INSERT IGNORE INTO tld VALUES ('eu.org', 4);
388 INSERT IGNORE INTO tld VALUES ('cjb.net', 4);
389 INSERT IGNORE INTO tld VALUES ('asso.fr', 4);
390
391 --
392 -- Table structure for table 'variable'
393 --
394 -- Taken from http://cvs.drupal.org/viewcvs/drupal/drupal/database/database.mysql?rev=1.164&view=auto
395 --
396 -- if comment is null, then the variable is internal and will not show
397 -- up in the generic configuration panel
398 CREATE TABLE IF NOT EXISTS variable (
399   name varchar(48) NOT NULL default '',
400   value longtext NOT NULL,
401   comment mediumtext NULL,
402   PRIMARY KEY  (name),
403   KEY name (name)
404 ) TYPE=MyISAM;
405
406 -- hosting_tld: only used, for now, in bureau/admin/adm_*add.php
407 INSERT IGNORE INTO `variable` (name, value, comment) VALUES ('hosting_tld', 0,
408 'This is a FQDN that designates the main hostname of the service.
409
410 For example, hosting_tld determines in what TLD the "free" user domain
411 is created. If this is set to "example.com", a checkbox will appear in
412 the user creation dialog requesting the creator if he wants to create
413 the domain "username.example.com".
414
415 If this is set to 0 or a "false" string, it will be ignored.');
416
Note: See TracBrowser for help on using the browser.