diff --git a/api/funkwhale_api/music/models.py b/api/funkwhale_api/music/models.py
index 6a55dfc00c385f18da92c7f6c0da49458c16402e..d7a08b7a40f5f06d7501bb666e9b64323e5f1e6d 100644
--- a/api/funkwhale_api/music/models.py
+++ b/api/funkwhale_api/music/models.py
@@ -27,6 +27,7 @@ class APIModelMixin(models.Model):
     api_includes = []
     creation_date = models.DateTimeField(default=timezone.now)
     import_hooks = []
+
     class Meta:
         abstract = True
         ordering = ['-creation_date']
@@ -291,6 +292,9 @@ class Track(APIModelMixin):
     ]
     tags = TaggableManager()
 
+    class Meta:
+        ordering = ['album', 'position']
+
     def __str__(self):
         return self.title
 
@@ -386,6 +390,8 @@ class ImportJob(models.Model):
     )
     status = models.CharField(choices=STATUS_CHOICES, default='pending', max_length=30)
 
+    class Meta:
+        ordering = ('id', )
     @celery.app.task(name='ImportJob.run', filter=celery.task_method)
     def run(self, replace=False):
         try:
diff --git a/api/funkwhale_api/music/serializers.py b/api/funkwhale_api/music/serializers.py
index e7d7399ad01ffeddc5e9bec5d452c05b4c56f3d9..6b839b9cfce30e2a650c95146a21f2fe4d6ed181 100644
--- a/api/funkwhale_api/music/serializers.py
+++ b/api/funkwhale_api/music/serializers.py
@@ -62,7 +62,15 @@ class TrackSerializer(LyricsMixin):
     tags = TagSerializer(many=True, read_only=True)
     class Meta:
         model = models.Track
-        fields = ('id', 'mbid', 'title', 'artist', 'files', 'tags', 'lyrics')
+        fields = (
+            'id',
+            'mbid',
+            'title',
+            'artist',
+            'files',
+            'tags',
+            'position',
+            'lyrics')
 
 class TrackSerializerNested(LyricsMixin):
     artist = ArtistSerializer()
diff --git a/front/src/components/audio/album/Card.vue b/front/src/components/audio/album/Card.vue
index fcdf1622d039fe2ae0cf0f5420dd70efaf1a638e..7fd60d963b512ae637faa7c7dc8acbb2f9021d80 100644
--- a/front/src/components/audio/album/Card.vue
+++ b/front/src/components/audio/album/Card.vue
@@ -22,6 +22,9 @@
                 </td>
                 <td colspan="6">
                   <router-link class="track discrete link" :to="{name: 'library.track', params: {id: track.id }}">
+                    <template v-if="track.position">
+                      {{ track.position }}.
+                    </template>
                     {{ track.title }}
                   </router-link>
                 </td>
diff --git a/front/src/components/audio/track/Table.vue b/front/src/components/audio/track/Table.vue
index 6898353d89810ee4952b161c5701c700733df13d..8dca90902efec2027fb22e7a8650e399d8bc8d9b 100644
--- a/front/src/components/audio/track/Table.vue
+++ b/front/src/components/audio/track/Table.vue
@@ -20,9 +20,12 @@
           <img class="ui mini image" v-else src="../../..//assets/audio/default-cover.png">
         </td>
         <td colspan="6">
-            <router-link class="track" :to="{name: 'library.track', params: {id: track.id }}">
-              {{ track.title }}
-            </router-link>
+          <router-link class="track" :to="{name: 'library.track', params: {id: track.id }}">
+            <template v-if="displayPosition && track.position">
+              {{ track.position }}.
+            </template>
+            {{ track.title }}
+          </router-link>
         </td>
         <td colspan="6">
           <router-link class="artist discrete link" :to="{name: 'library.artist', params: {id: track.artist.id }}">
@@ -46,7 +49,10 @@ import TrackFavoriteIcon from '@/components/favorites/TrackFavoriteIcon'
 import PlayButton from '@/components/audio/PlayButton'
 
 export default {
-  props: ['tracks'],
+  props: {
+    tracks: {type: Array, required: true},
+    displayPosition: {type: Boolean, default: false}
+  },
   components: {
     TrackFavoriteIcon,
     PlayButton
diff --git a/front/src/components/library/Album.vue b/front/src/components/library/Album.vue
index 5cc4d027159625f7807b01b73840886ee2285b4e..494f2396b9bc976d7a6c4593656517abc2cc84d5 100644
--- a/front/src/components/library/Album.vue
+++ b/front/src/components/library/Album.vue
@@ -34,7 +34,7 @@
       </div>
       <div class="ui vertical stripe segment">
         <h2>Tracks</h2>
-        <track-table v-if="album" :tracks="album.tracks"></track-table>
+        <track-table v-if="album" display-position="true" :tracks="album.tracks"></track-table>
       </div>
     </template>
   </div>