source: alternc/trunk/install/mysql.sql @ 1865

Revision 1865, 17.0 KB checked in by anarcat, 6 years ago (diff)

remove the size_db cache, it wasn't used in the code and is fully accessible from the PHP/MySQL API

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  encrypted_password VARCHAR(32) default NULL,
184  homedir varchar(128) NOT NULL default '',
185  uid int(10) unsigned NOT NULL default '0',
186  PRIMARY KEY  (id),
187  UNIQUE KEY name (name),
188  KEY homedir (homedir),
189  KEY mid (uid)
190) TYPE=MyISAM;
191
192#
193# Structure de la table `local`
194#
195# Champs utilisables par l'hébergeur pour associer des données locales aux membres.
196
197CREATE TABLE IF NOT EXISTS local (
198  uid int(10) unsigned NOT NULL default '0',
199  nom varchar(128) NOT NULL default '',
200  prenom varchar(128) NOT NULL default '',
201  PRIMARY KEY  (uid)
202) TYPE=MyISAM COMMENT='Parametres Locaux des membres';
203
204#
205# Structure de la table `membres`
206#
207# Liste des membres
208
209CREATE TABLE IF NOT EXISTS membres (
210  uid int(10) unsigned NOT NULL auto_increment,         # Numéro du membre (GID)
211  login varchar(128) NOT NULL default '',               # Nom d'utilisateur
212  pass varchar(64) NOT NULL default '',                 # Mot de passe
213  enabled tinyint(4) NOT NULL default '1',              # Le compte est-il actif ?
214  su tinyint(4) NOT NULL default '0',                   # Le compte est-il super-admin ?
215  mail varchar(128) NOT NULL default '',                # Adresse email du possesseur
216  lastaskpass bigint(20) unsigned default '0',          # Date de dernière demande du pass par mail
217  show_help tinyint(4) NOT NULL default '1',            # Faut-il afficher l'aide dans le bureau
218  lastlogin datetime NOT NULL default '0000-00-00 00:00:00',    # Date du dernier login
219  lastfail tinyint(4) NOT NULL default '0',             # Nombre d'échecs depuis le dernier login
220  lastip varchar(255) NOT NULL default '',              # Nom DNS du client au dernier login
221  creator int(10) unsigned default '0',                 # Qui a créé le compte (quel uid admin)
222  canpass tinyint(4) default '1',                       # L'utilisateur peut-il changer son pass.
223  warnlogin tinyint(4) default '0',                     # TODO L'utilisateur veut-il recevoir un mail quand on se loggue sur son compte ?
224  warnfailed tinyint(4) default '0',                    # TODO L'utilisateur veut-il recevoir un mail quand on tente de se logguer sur son compte ?
225  admlist tinyint(4) default '0',                       # Mode d'affichage de la liste des membres pour les super admins
226  type varchar(128) default 'default',
227  created datetime default NULL,
228  renewed datetime default NULL,
229  duration int(4) default NULL,
230  PRIMARY KEY  (uid),
231  UNIQUE KEY k_login (login)
232) TYPE=MyISAM COMMENT='Liste des membres du serveur';
233
234#
235# Structure de la table `quotas`
236#
237# Listes des quotas des membres
238
239CREATE TABLE IF NOT EXISTS quotas (
240  uid int(10) unsigned NOT NULL default '0',            # Numéro GID du membre concerné
241  name varchar(64) NOT NULL default '',                 # Nom du quota
242  total int(11) NOT NULL default '0',                   # Quota total (maximum autorisé)
243  PRIMARY KEY  (uid,name)
244) TYPE=MyISAM COMMENT='Quotas des Membres';
245
246#
247# Structure de la table `sessions`
248#
249# Sessions actives sur le bureau
250
251CREATE TABLE IF NOT EXISTS sessions (
252  sid varchar(32) NOT NULL default '',                  # Cookie de session (md5)
253  uid int(10) unsigned NOT NULL default '0',            # UID du membre concerné
254  ip int(10) unsigned NOT NULL default '0',             # Adresse IP de la connexion
255  ts timestamp(14) NOT NULL
256) TYPE=MyISAM COMMENT='Session actives sur le bureau';
257
258#
259# Structure de la table `sub_domaines`
260#
261# Sous-domaines des membres
262
263CREATE TABLE IF NOT EXISTS sub_domaines (
264  compte int(10) unsigned NOT NULL default '0',
265  domaine varchar(64) NOT NULL default '',
266  sub varchar(100) NOT NULL default '',
267  valeur varchar(255) default NULL,
268  type int(1) NOT NULL default '0',
269  PRIMARY KEY  (compte,domaine,sub)
270) TYPE=MyISAM;
271
272#
273# Structure de la table `sub_domaines_standby`
274#
275# Table temporaire des sous-domaines des membres utilisée par le cron
276
277CREATE TABLE IF NOT EXISTS sub_domaines_standby (
278  compte int(10) unsigned NOT NULL default '0',
279  domaine varchar(64) NOT NULL default '',
280  sub varchar(100) NOT NULL default '',
281  valeur varchar(255) default NULL,
282  type int(1) NOT NULL default '0',
283  action int(1) NOT NULL default '0',
284  PRIMARY KEY  (compte,domaine,sub,action)
285) TYPE=MyISAM;
286
287#
288# Structure de la table `stats2`
289#
290# Liste des jeux de stat brutes demandées sur le serveur
291
292CREATE TABLE IF NOT EXISTS stats2 (
293  id int(10) unsigned NOT NULL auto_increment,  # Numéro du jeu de stat brut
294  mid int(10) unsigned NOT NULL default '0',    # Numéro de l'utilisateur
295  hostname varchar(255) NOT NULL default '',    # Domaine concerné
296  folder varchar(255) NOT NULL default '',      # Dossier de stockage des logs
297  PRIMARY KEY  (id),
298  KEY mid (mid)
299) TYPE=MyISAM COMMENT='Statistiques apaches brutes';
300
301
302#
303# Structure de la table `defquotas`
304#
305# Quotas par défaut pour les services
306
307CREATE TABLE IF NOT EXISTS defquotas (
308  quota varchar(128),                           # Nom du quota
309  value bigint(20) unsigned default '0',        # Valeur du quota
310  type  varchar(128) default 'default',         # Type de compte associée à ce quota
311  PRIMARY KEY (quota,type)
312) TYPE=MyISAM;
313
314#
315# Quotas par defaut pour les nouveaux membres
316#
317# Ces quotas par defaut sont redefinissables dans l'interface web
318
319INSERT IGNORE INTO defquotas (quota,value) VALUES ('dom',1);
320INSERT IGNORE INTO defquotas (quota,value) VALUES ('mail',10);
321INSERT IGNORE INTO defquotas (quota,value) VALUES ('ftp',2);
322INSERT IGNORE INTO defquotas (quota,value) VALUES ('stats',1);
323INSERT IGNORE INTO defquotas (quota,value) VALUES ('mysql',1);
324INSERT IGNORE INTO defquotas (quota,value) VALUES ('mysql_users',1);
325
326
327#
328# Structure de la table `forbidden_domains`
329#
330# Liste des domaines explicitement interdits sur le serveur :
331
332CREATE TABLE IF NOT EXISTS forbidden_domains (
333  domain varchar(255) NOT NULL default '',
334  PRIMARY KEY  (domain)
335) TYPE=MyISAM COMMENT='forbidden domains to install';
336
337#
338# Contenu de la table `forbidden_domains`
339#
340
341# Registries :
342INSERT IGNORE INTO forbidden_domains VALUES ('afilias.net');
343INSERT IGNORE INTO forbidden_domains VALUES ('afnic.fr');
344INSERT IGNORE INTO forbidden_domains VALUES ('dns.be');
345INSERT IGNORE INTO forbidden_domains VALUES ('internic.net');
346INSERT IGNORE INTO forbidden_domains VALUES ('netsol.com');
347INSERT IGNORE INTO forbidden_domains VALUES ('nic.biz');
348INSERT IGNORE INTO forbidden_domains VALUES ('nic.cx');
349INSERT IGNORE INTO forbidden_domains VALUES ('nic.fr');
350INSERT IGNORE INTO forbidden_domains VALUES ('verisign.com');
351INSERT IGNORE INTO forbidden_domains VALUES ('octopuce.com');
352INSERT IGNORE INTO forbidden_domains VALUES ('pir.org');
353INSERT IGNORE INTO forbidden_domains VALUES ('cira.ca');
354# big isp :
355INSERT IGNORE INTO forbidden_domains VALUES ('aol.com');
356INSERT IGNORE INTO forbidden_domains VALUES ('hotmail.com');
357INSERT IGNORE INTO forbidden_domains VALUES ('microsoft.com');
358INSERT IGNORE INTO forbidden_domains VALUES ('sympatico.ca');
359INSERT IGNORE INTO forbidden_domains VALUES ('tiscali.fr');
360INSERT IGNORE INTO forbidden_domains VALUES ('voila.fr');
361INSERT IGNORE INTO forbidden_domains VALUES ('wanadoo.fr');
362INSERT IGNORE INTO forbidden_domains VALUES ('yahoo.com');
363INSERT IGNORE INTO forbidden_domains VALUES ('yahoo.fr');
364
365#
366# Structure de la table `tld`
367#
368# Liste des tld autorisés sur ce serveur :
369
370CREATE TABLE IF NOT EXISTS tld (
371  tld varchar(128) NOT NULL default '',         # lettres du tld (sans le .)
372  mode tinyint(4) NOT NULL default '0',         # Comment est-il autorisé ?
373  PRIMARY KEY  (tld),
374  KEY mode (mode)
375) TYPE=MyISAM COMMENT='TLD autorisés et comment sont-ils autorisés ? ';
376
377#
378# Contenu de la table `tld`
379#
380
381INSERT IGNORE INTO tld VALUES ('fr', 4);
382INSERT IGNORE INTO tld VALUES ('com', 1);
383INSERT IGNORE INTO tld VALUES ('org', 1);
384INSERT IGNORE INTO tld VALUES ('net', 1);
385INSERT IGNORE INTO tld VALUES ('biz', 1);
386INSERT IGNORE INTO tld VALUES ('info', 1);
387INSERT IGNORE INTO tld VALUES ('name', 1);
388INSERT IGNORE INTO tld VALUES ('ca', 1);
389INSERT IGNORE INTO tld VALUES ('it', 1);
390INSERT IGNORE INTO tld VALUES ('ws', 1);
391INSERT IGNORE INTO tld VALUES ('be', 1);
392INSERT IGNORE INTO tld VALUES ('eu.org', 4);
393INSERT IGNORE INTO tld VALUES ('cjb.net', 4);
394INSERT IGNORE INTO tld VALUES ('asso.fr', 4);
395
396--
397-- Table structure for table 'variable'
398--
399-- Taken from http://cvs.drupal.org/viewcvs/drupal/drupal/database/database.mysql?rev=1.164&view=auto
400--
401-- if comment is null, then the variable is internal and will not show
402-- up in the generic configuration panel
403CREATE TABLE IF NOT EXISTS variable (
404  name varchar(48) NOT NULL default '',
405  value longtext NOT NULL,
406  comment mediumtext NULL,
407  PRIMARY KEY  (name),
408  KEY name (name)
409) TYPE=MyISAM;
410
411-- hosting_tld: only used, for now, in bureau/admin/adm_*add.php
412INSERT IGNORE INTO `variable` (name, value, comment) VALUES ('hosting_tld', 0,
413'This is a FQDN that designates the main hostname of the service.
414
415For example, hosting_tld determines in what TLD the "free" user domain
416is created. If this is set to "example.com", a checkbox will appear in
417the user creation dialog requesting the creator if he wants to create
418the domain "username.example.com".
419
420If this is set to 0 or a "false" string, it will be ignored.');
421
422--
423-- Table structure for table `dbusers`
424--
425
426CREATE TABLE IF NOT EXISTS `dbusers` (
427  `id` int(10) unsigned NOT NULL auto_increment,
428  `uid` int(10) unsigned NOT NULL default '0',
429  `name` varchar(16) NOT NULL default '',
430  KEY `id` (`id`)
431) TYPE=MyISAM COMMENT='Utilisateurs MySQL des membres';
432
433
434CREATE TABLE IF NOT EXISTS `mxaccount` (
435`login` VARCHAR( 64 ) NOT NULL ,
436`pass`  VARCHAR( 64 ) NOT NULL ,
437PRIMARY KEY ( `login` )
438) COMMENT = 'Allowed account for secondary mx managment';
439
440
441-- --------------------------------------------------------
442CREATE TABLE IF NOT EXISTS `size_mail` (
443  `alias` varchar(255) NOT NULL default '',
444  `size` int(10) unsigned NOT NULL default '0',
445  `ts` timestamp(14) NOT NULL,
446  PRIMARY KEY  (`alias`),
447  KEY `ts` (`ts`)
448) TYPE=MyISAM COMMENT='Mail space used by pop accounts.';
449
450-- --------------------------------------------------------
451CREATE TABLE IF NOT EXISTS `size_web` (
452  `uid` int(10) unsigned NOT NULL default '0',
453  `size` int(10) unsigned NOT NULL default '0',
454  `ts` timestamp(14) NOT NULL,
455  PRIMARY KEY  (`uid`),
456  KEY `ts` (`ts`)
457) TYPE=MyISAM COMMENT='Web space used by accounts.';
458
Note: See TracBrowser for help on using the repository browser.